Reference string resource from code
I have a string declared in strings.xml:
<string name="last_msg">Your last click was on</string>
Now, when someone clicks the button, I want the textview to display this line with a space, and then the value of the variable, which is a timestamp.
Unfortunately, using @ string / last_msg does not work, and I'm not sure how to do it correctly, so I am not hard-coded in the content.
Here is 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 new, any help would be great!
you cannot access String
directly @
, for this you need to have a 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)); }
// 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); }