我在strings.xml中声明了以下字符串:
<string name="last_msg">Your last click was on</string>
现在当有人点击按钮时,我想要一个textview来显示这个字符串,带有空格,然后是一个时间戳的变量值。
不幸的是,使用@ string / last_msg不起作用,我不确定如何正确地执行此操作,因此我不会在内容中进行硬编码。
这是我的onClick函数代码:
public void showMsgNow(View view) {
TextView lastMsg = (TextView)findViewById(R.id.textView2);
long currentTimeStamp = System.currentTimeMillis();
lastMsg.setText(@string/last_msg + " " + currentTimeStamp);
}
我是新手,任何帮助都会很棒!
答案 0 :(得分:12)
我在Google上找到了答案:
getString(R.string.last_msg)
答案 1 :(得分: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 :(得分: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);
}
答案 3 :(得分:2)
使用下面的行
lastMsg.setText(getString(R.string.last_msg) + " " + currentTimeStamp);
答案 4 :(得分:0)
试试这个:
lastMsg.setText(R.string.last_msg + " " + new SimpleDateFormat(d-MM-YYYY).format(new Date()));