0

我一直在尝试开发一个简单的音板的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] 周围放置方括号或括号,但我的语法不正确。我确信这是一个非常简单的问题,但它欺骗了我。有什么建议么?

提前致谢!美泰87

4

1 回答 1

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,因此您必须同步这两个值。

于 2012-09-03T17:38:51.107 回答