2012-05-22 12 views
6

He declarado la siguiente cadena en strings.xml:recurso de cadena de referencia a partir del código

<string name="last_msg">Your last click was on</string> 

Ahora, cuando alguien hace clic en un botón, quiero un TextView para mostrar esta cadena, con un espacio, a continuación, un valor de la variable eso es una marca de tiempo

Desafortunadamente, utilizar @ string/last_msg no funciona, y no estoy seguro de cómo hacerlo correctamente, así que no estoy en el hardcoding de contenido.

Aquí está mi código de la función onClick:

public void showMsgNow(View view) { 
    TextView lastMsg = (TextView)findViewById(R.id.textView2); 
    long currentTimeStamp = System.currentTimeMillis(); 
    lastMsg.setText(@string/last_msg + " " + currentTimeStamp); 
} 

Soy un novato, cualquier ayuda sería grande!

+0

búsqueda en Google/web antes de hacer preguntas, esta es la cosa simple u puede incluso encontrar en documentos también. – AAnkit

Respuesta

10

he encontrado la respuesta en Google:

getString(R.string.last_msg) 
6
// getString is method of context 
if (this instanceof Context) 
//If you are in Activity or Service class    
lastMsg.setText(getString(R.string.last_msg)+ " " + currentTimeStamp); 
else       
//you need to context to get the string 
    lastMsg.setText(getString(mContext,R.string.last_msg)+ " " + currentTimeStamp); 


    public String getString(Context mContext, int id){ 
    return mContext.getResources().getString(id); 
    } 
+0

entonces no necesito usar la función getString ?? – scarhand

+0

cuando no uso la función getString solo aparece como un entero y no como la cadena ... – scarhand

+0

No es necesario usar aquí, en android R es la clase Resource, todos los recursos almacenados en la carpeta raw tienen identificadores en la R clase – Sandy09

10

que no puede acceder directamente por String@, para eso se necesita tener recursos contexto y luego simplemente hacer esto ...

lastMsg.setText(context.getResources().getString(R.string.last_msg) + " " + currentTimeStamp); 

en su caso uso

<string name="last_msg">Your last click was on %1$s</string> 

aplicación:

public void showMsgNow(View view) { 
    TextView lastMsg = (TextView)findViewById(R.id.textView2); 
    long currentTimeStamp = System.currentTimeMillis(); 
    lastMsg.setText(context.getResources() 
     .getString(R.string.last_msg, currentTimeStamp)); 
} 
2

utilizar por debajo de la línea

lastMsg.setText(getString(R.string.last_msg) + " " + currentTimeStamp); 
0

Prueba esto:

lastMsg.setText(R.string.last_msg + " " + new SimpleDateFormat(d-MM-YYYY).format(new Date())); 
Cuestiones relacionadas