我有一个textview和一个按钮,我可以用以下代码更改textview文本:
final Textview c_tv_matn;
Button c_btn_dokme;
c_btn_dokme = (button) findviewbyid(R.id.btn1);
c_tv_matn = (Textview) findviewbyid(R.id.txt1);
c_btn_dokme.setonclickListener(new OnclickListener() {
@Override
public void onClick(View v) {
c_tv_matn.SetText("this is second text");
});
但是我想从String.xml更改文本并像这样使“下一步”按钮; “ matn_1”,“ matn_2” matn_3“ matn_4 ...
STRING.XML
<string name="matn_0">Hello world!</string>
<string name="matn_1">You are hero john</string>
<string name="matn_2">you can change this world</string>
<string name="matn_3">You are so clever</string>
您希望我帮我从带有数字的STRING和CHANG TEXTVIEW文本中获取内容吗?
答案 0 :(得分:0)
要从String
获得string.xml
,您需要一个Context
。
Activity
是Context
,因此,如果您在Activity
中,则可以调用getString(R.string.<the name in string.xml>)
来检索所需的String
。>
例如getString(R.string.matn_0)
。
然后可以将其应用于您的需求:
c_tv_matn.SetText(getString(R.string.matn_0));
如果您不在Activity
中,则需要持有Context
,可能将其作为参数传递给类的构造函数(并将其存储为属性)或作为将要进行文本设置的方法的参数。
答案 1 :(得分:0)
您希望我帮我从带有数字的STRING和CHANG TEXTVIEW文本中获取内容吗?
您可以使用getString(int)
或getText(int)
来检索字符串。 getText(int)
保留应用于字符串的任何富文本样式。
但是在这种情况下,您将使用getString(int)
返回与特定资源ID关联的字符串值。它将除去所有样式的文本信息。
有时候,您需要context
,例如您想在Button
内进行操作,然后可以从context
获取View
,或者如果您的context
中有一个全局Activity/Fragment
,则也可以使用它。
如果我没有误会,您想要的是将文本从Strings.xml
放到TextView
,因此您可以这样操作:
final Textview c_tv_matn;
Button c_btn_dokme;
int textNumber = 1;
c_btn_dokme = (button) findviewbyid(R.id.btn1);
c_tv_matn = (Textview) findviewbyid(R.id.txt1);
c_btn_dokme.setonclickListener(new OnclickListener() {
@Override
public void onClick(View v) {
switch(textNumber){
case 1:
c_tv_matn.setText(v.getContext().getString(R.string.matn_1))
textNumber++;
break;
case 2:
c_tv_matn.setText(v.getContext().getString(R.string.matn_2))
textNumber++;
break;
case 3:
c_tv_matn.setText(v.getContext().getString(R.string.matn_3))
textNumber++;
break;
default:
textNumber = 1;
c_tv_matn.setText(v.getContext().getString(R.string.matn_1)
break;
});
答案 2 :(得分:0)
在Android XML文件中创建数组
您需要string.xml中的数组。作为参考,请查看下面的链接