gpt4 book ai didi

android - Arrayadapter 自定义 id

转载 作者:太空狗 更新时间:2023-10-29 15:01:47 25 4
gpt4 key购买 nike

我有一个从 baseadapter 扩展的 arrayadapter 并将它与 arraylist 一起用于存储数据。我需要更新单个项目。所以我需要在添加到 arraylist 时为每个项目提供一个 id。然后我将使用 set 方法更新它像这样:

randomsList.set(position,new Random(user,1));

我的意思是我需要一个位置值。有人说你需要为此实现 map。但我不知道我该怎么做。我需要一个例子。

这是我的课:

private static class Randoms{
private List<Random> randoms=null;

public Randoms(List<Random> randoms) {
this.randoms=randoms;
}
public Random get(int position) {
return randoms.get(position);
}
public int size() {
return randoms.size();
}
}

这是我的适配器:

private static class RandomsAdapter extends BaseAdapter{
private Randoms randoms;
private LayoutInflater inflater;
private Context context;
private RandomsAdapter(Context context,Randoms randoms) {
this.randoms=randoms;
this.inflater = LayoutInflater.from(context);
this.context=context;
}
public void updateRandoms(Randoms randoms) {
this.randoms=randoms;
notifyDataSetChanged();
}
@Override
public int getCount() {
return randoms.size();
}
@Override
public Random getItem(int position) {
return randoms.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
public View getView(int position,View convertView,ViewGroup parent) {

}

}

最佳答案

如果我没理解错的话,你想用item在列表中的位置作为item的id值:

您可以为 Random 创建一个包装类,它将包含 Random 对象及其 ID。

class RandomWrapper {
private Random rand;
private int id;
RandomWrapper(Random rand, int id) {
this.rand = rand;
this.id = id;
}
public Random getRand() {
return this.rand;
}
public int getID() {
return this.id;
}
}

这样,如果你想访问你的Random,调用yourRandomWrapper.getRand(),如果你想获取id,调用yourRandomWrapper.getID ()

因此,例如,将 5 项添加到您的列表中:

for(int i = 0; i < 5; i++) {
randomsList.add(new RandomWrapper(yourRandomObj, i));
}

如果你想为你的对象生成一个唯一的 ID,你可以使用 java.util.UUID 类。如果您对它的工作原理感兴趣,可以查看this answerOracle Docs

关于android - Arrayadapter 自定义 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com