Arrayadapter自定义ID

时间:2014-09-11 22:53:41

标签: android

我有一个从baseadapter扩展的arrayadapter,并使用它与商店数据的arraylist。我需要更新单个项目。所以我需要为每个项目添加一个id添加到arraylist。然后我将用{{更新它1}}这样的方法:

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();
    }
}

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望使用列表中项目的位置作为项目的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