5

我在 strings.xml 中声明了以下字符串:

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

现在当有人点击一个按钮时,我想要一个文本视图来显示这个字符串,一个空格,然后是一个变量值,它是一个时间戳。

不幸的是,使用 @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);
}

我是新手,任何帮助都会很棒!

4

5 回答 5

11

我在谷歌上找到了答案:

getString(R.string.last_msg)
于 2012-05-22T09:08:26.810 回答
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));
}
于 2012-05-22T09:09:13.673 回答
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);
  }
于 2012-05-22T09:08:14.440 回答
1

使用下面的行

 lastMsg.setText(getString(R.string.last_msg) + " " + currentTimeStamp);
于 2012-05-22T09:09:38.523 回答
0

试试这个 :

lastMsg.setText(R.string.last_msg + " " + new SimpleDateFormat(d-MM-YYYY).format(new Date()));
于 2012-05-22T09:13:23.203 回答