1

我无法将对象放入字典并获取它们,我想将 imageViews 与 int 相对,但失败且没有任何错误

字典声明为:

    Dictionary<Integer, ImageView> dictPlayerAll = new Dictionary<Integer, ImageView>(){

        @Override
        public int size() {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public ImageView remove(Object key) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public ImageView put(Integer key, ImageView value) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public Enumeration<Integer> keys() {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public boolean isEmpty() {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public ImageView get(Object key) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public Enumeration<ImageView> elements() {
            // TODO Auto-generated method stub
            return null;
        }
    };;

这里将值放入字典

    int mTag = iv.getTag();//its my imageview
    dictPlayerAll.put(mTag, iv);

但它显示零大小

4

1 回答 1

1

您的更新更有意义,但 Dictionary 类仍然过时。从文档中

java.util Class Dictionary
...
注意:不要使用此类,因为它已过时。

由于您要创建一个由 Integers ( new Dictionary<Integer, ImageView>()) 索引的表,我们应该使用 SparseArray。

此外,当您使用时,setTag()您将 Integer 转换为 Object,并且每次使用时,getTag()您都将 Integer 从 Object 转换回。这行得通,但如果你可以使用getId()它会更快。

我推荐这个:

SparseArray<ImageView> allPlayers = new SparseArray<ImageView>();
...

allPlayers.put(iv.getId(), iv);
于 2012-09-05T15:08:10.247 回答