我有一个名为 StringsA
的类,里面有一个字符串数组:
public class StringsA {
static String Names[] = {"Larry", "Moe", "Curly", "John"};
}
在我的主类中有一个Button
和一个TextView
。
我想要的是每次单击 Button
时将 TextView
的文本设置为与字符串数组不同的单词。
例如;当前项目是“Moe”,单击按钮时,TextView
更改为“John”(更改是随机的,而不是按顺序)。
我当前的 Activity 代码:
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
中遇到错误。单击 Button
时,我应该如何将 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);
}
});
}
关于Android以编程方式加载字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12901333/