按钮的文本循环通过字符串数组

时间:2017-03-29 19:24:05

标签: java android arrays

我有一个按钮,当点击时,里面的文字会发生变化。我试图用strings.xml中的数组完成此操作,认为onClick将通过字符串数组执行for循环

<string-array name="RG_answers">
     <item>text 1</item><!--Of course this is example text-->
     <item>text 2</item>
     <item>text 3</item>
</string-array>

我不知道我是不是谷歌搜索不正确,或者是什么。在我的onCreate()内,我的按钮是基本的

 mTrueButton = (Button) findViewById(R.id.true_button);
        mTrueButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

如此基本,只有提供我称之为的名称才有用(如果有的话)。有可能/可行吗?根据我的发现,我还没有看到有人问这样的问题。

3 个答案:

答案 0 :(得分:1)

  

是否可以循环遍历字符串数组?

是的,使用button.setText(text);更改按钮文本。将计数器保留为全局变量,以便循环显示您提到的“按钮文本”列表。

例如:button.setText(array[index]);

答案 1 :(得分:0)

您需要三个步骤:

//1 Declare an index outside onClick:
int currentIndex=0;

//2- Read the answers:
Resources res = getResources();
myStrings = res.getStringArray(R.array.RG_answers);

//3- iterate thru them inside onClick:
mTrueButton.setText(myStrings[(currentIndex++)%(myStrings.length)]);

答案 2 :(得分:0)

像这样。

private int count = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final String[] btnText = getResources().getStringArray(R.array.RG_answers);
    mTrueButton = (Button) findViewById(R.id.true_button);
    mTrueButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mTrueButton.setText(btnText[count]);
            if (count < btnText.length - 1) {
                count++;
            } else {
                count = 0;
            }
        }
    });
}