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クラスディクショナリ
...
注:このクラスは廃止されているため、使用しないでください。

Integers(new Dictionary<Integer, ImageView>())でインデックス付けされたテーブルを作成するため、SparseArrayを使用する必要があります。

また、使用するときはsetTag()整数をオブジェクトに変換し、使用するたびに整数をオブジェクトgetTag()から変換し直します。これは機能しますが、使用できる場合getId()は高速になります。

私はこれをお勧めします:

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

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