Reference string resource from code

寵の児 提交于 2019-11-27 07:03:56

问题


I have the following string declared in strings.xml:

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

Now when someone clicks a button, I want a textview to show this string, with a space, then a variable value that is a timestamp.

Unfortunately, using @string/last_msg isn't working, and I'm not sure how to do this properly so I'm not hardcoding in content.

Here's my code for the onClick function:

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

I'm a newbie, any help would be great !


回答1:


I found the answer on Google:

getString(R.string.last_msg)



回答2:


you cant access String directly by @, for that you need to have context resource and then just do this...

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

in your case use

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

implementation:

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));
}



回答3:


// 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);
  }



回答4:


use below line

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



回答5:


Try this :

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


来源:https://stackoverflow.com/questions/10698945/reference-string-resource-from-code

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!