【问题标题】:how to increment the index at each call when pressing the same button?按下相同的按钮时如何在每次调用时增加索引?
【发布时间】:2021-03-22 23:13:25
【问题描述】:

我知道这对你们中的许多人来说真的很容易做到,但我一直在这里和其他任何地方尝试所有答案......他们都没有工作......对我来说......也许你可以帮忙...... ? 我有一个 ArrayList (键)......我想在每次调用时增加索引......用一个按钮...... 我希望第一个输出是:“key”:0,然后,再次按下按钮:“key”:1,再次按下“key”:2。提前谢谢! 我这样做了:

for (int i = 0; i < keys.size(); i++) {
    if (like) {
        Log.i("key", keys.get(i));
        keys.set(i, keys.get(i) + 1);
    }
}

【问题讨论】:

  • like 的值是多少?也许这种情况会导致阻止增加价值
  • 我也想过.. 0,1,2,3,4,5 ...我知道整数是不可变的..这就是我试图替换值的原因,但我不知道是否我应该创建一个变量,然后将其替换为keys.get(i)+“新变量”----感谢您回复Mustafa..我很新……谢谢!
  • 那么你的问题解决了吗?
  • 还没有@MustafaPoya 我在这里尝试一切:)
  • 尝试在您的问题中添加button 的代码以获得更好的帮助

标签: java android arraylist indexing increment


【解决方案1】:

您可以尝试为索引设置一个全局变量,然后尝试在点击侦听器中记录并设置键中的值。这是你想要达到的目标吗?

int index = 0;
btn.setOnClickListener(new View.OnClickListener() { 
    Log.i("key: ", index);
    index++;
    keys.set(i, index);
});

【讨论】:

  • @MustafaPoya SE 使用称为“缓存”的东西,这意味着完全有可能错过发布的答案。在相隔不到一分钟的答案上指责人们抄袭是不行的。在新问题上,相同的答案通常会一个接一个地出现。这并不意味着这是复制的。
【解决方案2】:
for (int i = 0; i < keys.size(); i++) {
    if (like) {
        Log.i("key", keys.get(i));
        int temp = keys.get(i);
        ++temp;
        keys.set(i, temp);
    }
}

或

for (int i = 0; i < keys.size(); i++) {
    if (like) {
        Log.i("key", keys.get(i));
        keys.set(i, (keys.get(i)) + 1);
    }
}

以上 2 个代码 sn-ps 中的任何一个都可以解决您的问题,甚至您的代码 sn-p 也是正确的。您能否分享有关您如何验证的更多信息。

【讨论】:

    【解决方案3】:
    Log.i("key", keys.get(i++));
    

    应该做的伎俩

    【讨论】:

    • 我会试一试,我会让你知道.. Indycate :)
    • 不……没有发生……我仍然得到 0……我不明白 ?
    • @JonathanCheli 请参阅stackoverflow.com/a/24858 - 另请注意,此答案不起作用,因为它增加了键而不是值。在大约 keys.size() / 2 处,这将引发 IndexOutOfBoundsException。此外,AFAIK,Java 不允许您在映射、数组、列表、集合或其他类似结构上使用前缀或后缀 ++
    • @Zoe 超级酷的帖子,是的,它确实增加了键,但没有增加值..正如你提到的.. 非常感谢这篇文章:)
    猜你喜欢
    • 1970-01-01
    • 2016-10-02
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2016-01-16
    相关资源
    最近更新 更多