2012-05-22 16 views
6

ho la seguente stringa dichiarata in strings.xml:Riferimento risorsa di tipo stringa dal codice

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

Ora, quando un utente fa clic su un pulsante, voglio un TextView per mostrare questa stringa, con uno spazio, quindi un valore variabile questo è un timestamp.

Sfortunatamente, l'uso di @ string/last_msg non funziona e non sono sicuro di come farlo correttamente, quindi non sto codificando nel contenuto.

Ecco il mio codice per la funzione onClick:

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

Sono un principiante, qualsiasi aiuto sarebbe grande!

+0

ricerca su Google/web prima di inviare domande, questa è la cosa semplice u può anche scoprire in anche i documenti. – AAnkit

risposta

10

ho trovato la risposta su 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

quindi non ho bisogno di usare la funzione getString ?? – scarhand

+0

quando non uso la funzione getString appare come un intero e non la stringa ... – scarhand

+0

Non c'è bisogno di usare qui, in Android R è la classe Resource, tutte le risorse memorizzate nella cartella raw hanno id nella R class – Sandy09

10

l'accesso sopraelevazione String direttamente @, per questo è necessario disporre delle risorse contesto e poi basta fare questo ...

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

nel tuo caso utilizzare

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

implementazione:

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

uso sotto la linea

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

Prova questa:

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