【问题标题】:custom arraylist change item by position自定义arraylist按位置更改项目
【发布时间】:2015-09-01 09:34:04
【问题描述】:

我有一个自定义的 ArrayList(Card)。我在我的 ArrayList 中插入了一些项目。这是我的 ArrayList 项目类

public class Card {
    private int primary;

    public int getPrimary() {
        return primary;
    }

    public void setPrimary(int primary) {
        this.primary = primary;
    }
}

我想按位置更改我的 int 主要

 for (int j=0;j<=CardsNewFragment.card_list.size();j++) {
     CardsNewFragment.card_list.get(mCurrentPage).setPrimary(1);
     if (CardsNewFragment.card_list.get(mCurrentPage).getPrimary() == 1) {
         primaryCardSwitch.setChecked(true);
         primaryCardSwitch.setEnabled(false);
     } else {
         primaryCardSwitch.setChecked(false);
         primaryCardSwitch.setEnabled(true);
     }
  }

例如,在我的 ArrayList 的 setPrimary() 中有 1,0,3,现在我想按位置更改 setPrimary()。例如,如果我选择了第二个项目,我想在第二个项目中插入 1 个 setPrimary() 和另一个位置 0 或另一个值 我该如何解决我的问题?

【问题讨论】:

  • a) 为什么你一方面循环播放,另一方面却总是阅读mCurrentPage?不应该是.get(j) 而不是.get(mCurrentPage) 吗? b)有点难以理解你在问什么。您能否提供一个前后列表状态的示例以使其更清晰?例如,如果您从 1,0,3 开始,您期望结果是什么(也是列表“格式”)?
  • 例如在我的 arralist 中有 (1,2,4,0) 并且我想将第二个元素 (2) 更改为例如 -1 和另一个 0.new arraylis 应该是 (0, -1,0,0) @Ori Lentz
  • 你试过 yourarraylist.set(position,item element);希望它会工作
  • @Madhu 你明白我的评论吗?我想接收 (0,-1,0,0) 你能告诉我代码或例子吗?
  • @user3863447 基于项目单击,您需要使用更新的位置更新您的数组列表,对吗????

标签: java android arraylist


【解决方案1】:

其实我不确定我是否明白你想要什么,但我还是会试一试。

public void setPrimaryForPosition(int position, int newPrimary) {

    for (int j=0;j<CardsNewFragment.card_list.size();j++) {
        if(j+1==position) {
            CardsNewFragment.card_list.get(j).setPrimary(newPrimary);
        } else {
            CardsNewFragment.card_list.get(j).setPrimary(0);
        }
    }

}

对于您在评论中建议的示例,要从 (1, 2, 4, 0) 更改为 (0, -1, 0, 0),请运行 setPrimaryForPosition(2, -1)

【讨论】:

  • ndexOutOfBoundsException: 索引 6 无效,大小为 6 @Derek Fung
  • 对不起,编辑了,我懒得复制你的代码没有验证
  • @Derek Fung 你在你的代码中做了什么改变?可能是相同的代码
  • for (int j=0;j&lt;CardsNewFragment.card_list.size();j++) {,这一行,去掉 CardsNewFragment 前的=
猜你喜欢
  • 2016-10-14
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
相关资源
最近更新 更多