我一直在尝试开发一个简单的声板的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]); }
但是在上面的第3行中,buttonIds无法解析为字段。我试过在buttonIds [1]周围加上括号或parantheis,但我的语法不对。我相信这是一个非常简单的问题,但它正在让我感到满意。有什么建议吗?
提前致谢! Maytag87
答案 0 :(得分:1)
看看这是否有帮助:
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
开始,因此您必须同步这两个值。