2012-05-22 2 views
6

я следующая строка объявлена ​​в strings.xml:Ссылка строка ресурса из кода

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

Теперь, когда кто-то нажимает кнопку, я хочу TextView, чтобы показать эту строку с пробелом, то значение переменной это временная метка.

К сожалению, использование @ string/last_msg не работает, и я не уверен, как это сделать должным образом, поэтому я не являюсь hardcoding в контенте.

Вот мой код для функции OnClick:

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

Я новичок, любая помощь будет здорово!

+0

Поиск по Google/веб перед публиковать вопросы, это простая вещь, у даже можно найти в Документы тоже. – AAnkit

ответ

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

, поэтому мне не нужно использовать функцию getString? – scarhand

+0

, когда я не использую функцию getString, она просто появляется как целое число, а не строка ... – scarhand

+0

Не нужно использовать здесь, в android R - класс ресурсов, все ресурсы, хранящиеся в исходной папке, имеют идентификаторы в R class – Sandy09

10

вы наклоненная доступа String непосредственно @, для этого вам нужно иметь контекстную ресурс, а затем просто сделать это ...

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

в вашем случае использование

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

реализация:

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

использование ниже линии

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

Попробуйте это:

lastMsg.setText(R.string.last_msg + " " + new SimpleDateFormat(d-MM-YYYY).format(new Date())); 
Смежные вопросы