我一直在尝试开发一个简单的配音板的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开始,因此您必须同步两个值。

07-24 20:38