0

私はPlayerListというクラスを持っています。そのクラスには、次のように定義されたArrayListがあります。

private ArrayList<Bitmap> images = new ArrayList<Bitmap>();

これで、ArrayList removeメソッドは、インデックスとオブジェクトの2つの引数を除外できます。

アレイにビットマップを送信して、アレイからビットマップを削除しようとしています。ビットマップは同じ画像で作成されていますが、配列に保存したビットマップのインスタンスは、検索しようとしているものと同じではありません。ArrayListをコンソールに出力すると、常に新しい名前が表示されます。お気に入り :

[android.graphics.Bitmap@44ea2d48, android.graphics.Bitmap@44ea2e20]

これは関連しているのでしょうか?そして、その間、クラスParcelableはデータが前後に読み書きされるように実装しますが、それも健全すぎることはありませんよね?

一般的な問題がないのですか、それともコード固有であり、コードを公開する必要がありますか?

ここでの私の問題は、基本的に、ビットマップを削除しようとすると、常に配列リスト内の間違った項目を削除することです。常に、必要な1の前に1を削除します。

4

1 に答える 1

0

BitMap's保存されているハッシュコードなどのキーへのハンドルがない限り、リストから目的のキーを削除することはできません。保存されたものだけに依存したい場合はBitMap、リストをトラバースして要素を解析し、目的のビットマップを見つける必要があります。BitMapここでも、解析しているものが探しているものであるかどうかを識別するためのhascodeが必要です。つまり、保存されhashcode'sているそれぞれのリストを維持する必要があります。または、保存されているものに対してを保存できるようにするoverをBitMap使用します。また、に基づいて要件を処理し、テーブル からを削除するために必要なときにいつでも使用できます。HashMapListkeyBitMapkeyBitMapHashMap

HashMap<String, BitMap> myBitMaps = ... // construct as you desire.
...
if ( condition satisfied on key ) {
  myBitMaps.remove( keyObject );
  // process further
}
于 2012-05-28T18:33:39.017 に答える