我有一个类StringsA,在这个类中有一个字符串列表。
public class StringsA {
static String Names[] = {"Larry", "Moe", "Curly", "John"};
}
在主类中有一个button和textview。我想实现的是每次当按钮被点击时,textview能用.setText从字符串中调用一个不同的名字。例如,现在的名字是Moe,当点击按钮后,textview的名字变成 John。名字的变化是随机的,没有顺序。
setContentView(R.layout.main);
Button a = (Button) findViewById(R.id.button1);
TextView b = (TextView) findViewById(R.id.tv);
Resources i = getResources();
i.getResourceName(StringsA.Names);
a.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
}
在i.getResourceTypeName处出错。如何点击按钮改变textview里的字符串名称?
充分利用Android资源,从strings.xml的字符串数组中加载一个值。例如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
</string-array>
</resources>
然后:
private static final Random RAND = new Random();
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.main);
Button myButton = (Button) findViewById(R.id.button1);
TextView myTextField = (TextView) findViewById(R.id.tv);
final String[] values = getResources().getStringArray(R.array.planets_array);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String nextValue = values[RAND.nextInt(values.length)]
myTextField.setText(nextValue);
}
});
}
int readomIndex = (int)(Math.random() * 3);
b.setText( Names[readomIndex]);
在onClick中加上两句试一下
这个还不简单,
int readomIndex = (int)(Math.random() * 3);
b.setText(StringsA.Names[readomIndex]);
//下面这两句就不要了
Resources i = getResources();
i.getResourceName(StringsA.Names);
这两句一般是用.xml中的资源,但一般也不是你这样用的。
eg获取.xml中的字符串
eg:String s=getResources().getString(R.string.resource_name);
注意:
01.方法一:this.getString(R.string.resource_name);
02.方法二:getResources().getString(R.string.resource_name);
03在其他java文件(必须有Context或application)