我一直在尝试开发一个简单的配音板的Android应用程序,该应用程序可以播放多个长音,一次只能播放一个,而不是同时播放。我的声音部分演奏得很棒。我想为每个按钮分配文本。
我像这样设置了一个strings.xml:
<string name="quote01">quote01</string>
<string name="quote02">quote02</string>
<string name="quote03">quote03</string>
在main.xml中,我的buttonIds设置如下:
final int[] buttonIds = { R.id.button01, R.id.button02, R.id.button03,
R.id.button04, R.id.button05, R.id.button06,
R.id.button07, R.id.button08, R.id.button09,
R.id.button10, R.id.button11, R.id.button12,
R.id.button13, R.id.button14, R.id.button15,
R.id.button16, R.id.button16, R.id.button17,
R.id.button18, R.id.button19, R.id.button20,
R.id.button21, R.id.button22, R.id.button23,
R.id.button24, R.id.button25 };
我可以像这样分配按钮文本以使其工作:
Button s01 = (Button) findViewById(R.id.button01);
s01.setText(this.getString(R.string.quote01));
Button s02 = (Button) findViewById(R.id.button02);
s02.setText(this.getString(R.string.quote02));
Button s03 = (Button) findViewById(R.id.button03);
s03.setText(this.getString(R.string.quote03));
但我宁愿使用循环来避免重复的代码。我有一个非工作循环,如下所示:
for(int i = 0; i < buttonIds.length; i++) {
Button soundButton = (Button)findViewById(buttonIds[i]);
soundButton.setText(this.getString(R.string.buttonIds[i]);
}
但是在上面的第三行中,buttonIds不能解析为一个字段。我曾尝试在buttonIds [1]周围加上方括号或括号,但语法不正确。我相信这是一个非常容易的问题,但这使我感到困惑。有什么建议么?
提前致谢!
Maytag87
最佳答案
看看这是否有帮助:
Resources res = getResources();
for(int i = 0; i < buttonIds.length; i++) {
Button soundButton = (Button)findViewById(buttonIds[i]);
soundButton.setText(res.getIdentifier("quote" + (i < 10 ? "0" + i : i), "string", getPackageName()));
}
同样,您的字符串设置从
quote01
开始,循环从i = 0
开始,因此您必须同步两个值。