Android for循环等待click事件计数器,然后继续循环

时间:2020-01-12 12:17:29

标签: java android loops for-loop onclicklistener

假设我有一个像这样的数组:

Array {
    {
        "id" => 1,
        "text" => "First Text"
    },
    {
        "id" => 2,
        "text" => "Second Text"
    },
    {
        "id" => 3,
        "text" => "Third Text"
    },
}

我想输出数组text => First Text的第一个元素

然后有一个我将单击的Button,如果此按钮的单击计数等于4,则输出数组text => Second Text的下一个元素,直到到达数组末尾。

通过知道该数组将具有动态数量的具有不同数据的元素。

我拥有的代码:

for(int i = 0; i < array.size(); i++)
{
    someElement.setText(i);

    break;
}

我该如何实现?

谢谢!

2 个答案:

答案 0 :(得分:1)

在您的private int类中创建一个Button,这会将文本的当前索引保存在array中。

点击后,按钮应执行以下操作

if(cur_text_index == array.size())
{ return; }

setText(array.get(cur_text_index));
++cur_text_index;

如果您希望在更改按钮的文本之前先单击两次,请在private int类中添加第二个Button,以保存单击的次数而不更改其文本。< / p>

点击后,按钮应执行以下操作

if(cur_text_index == array.size())
{ return; }

if(clicks_since_text_change < 4)
{
  ++clicks_since_text_change;
  return;
}
clicks_since_text_change= 0;

setText(array.get(cur_text_index));
++cur_text_index;

答案 1 :(得分:1)

为什么您完全使用id? 您不能只使用一个值为“第一文本”,“第二文本”,“第三文本”的数组 所以

String [] textArray = new String [] {“第一文本”,“第二文本”,“第三文本”}

int textIndex = 0;

然后说

    someElement.setText(textIndex++)

在onClickListener中?

要阻止它访问不存在的索引,可以放一个

if(textIndex+1>=textArray.length)

周围