Android クラス BaseAdapter のメソッド getItem と getItemId の目的は何ですか? 質問する

Android クラス BaseAdapter のメソッド getItem と getItemId の目的は何ですか? 質問する

私はその方法の目的が知りたいgetItemそしてgetItemIdAndroid SDK の Adapter クラス内。

説明からすると、getItem基になるデータを返す必要があるようです。つまり、名前の配列があり["cat","dog","red"]、アダプタを作成すると、aそれを使ってa.getItem(1)「dog」を返すべきですよね?a.getItemId(1)戻る?

これらの方法を実際に使用したことがあるなら、例を挙げていただけますか?

ベストアンサー1

これらのメソッドは、リストのデータにアクセスするためのよりクリーンなアプローチであると私は考えています。 などを介してアダプタ オブジェクトに直接アクセスする代わりに、 のようmyListData.get(position)にアダプタを呼び出すだけですadapter.get(position)

についても同様ですgetItemId。通常、リスト内のオブジェクトの一意の ID に基づいて何らかのタスクを実行する場合にこのメソッドを使用します。これは、データベースを操作する場合に特に便利です。返される は、データベースid内のオブジェクトへの参照である可能性があり、これに対してさまざまな操作 (更新/削除など) を実行できます。

したがって、生のデータ オブジェクトから ID にアクセスする代わりに、myListData.get(position).getId()を使用できますadapter.getItemId(position)

これらの方法を使う必要があると感じた例の1つは、分離されたリストビューアダプタこのアダプタには、それぞれが異なるタイプ(通常)のデータを表す複数の異なる種類のアダプタを含めることができます。getItem(position)を呼び出すとSeparatedListViewAdapter、返されるオブジェクトは、送信する位置がどの「セクション」であるかによって異なる場合があります。

例えば、リストに2つのセクション(フルーツとキャンディー)があった場合getItem(position)positionフルーツセクションでは、アイテムを指定してgetItem(position)リクエストした場合とは異なるオブジェクトが返されます。positionあめセクション。次に、返されるgetItemId(position)データの種類を表す定数 ID 値を返したりgetItem(position)instanceof所有しているオブジェクトを特定するために使用したりします。

私が言及した以外では、これらの方法を本当に使う必要があると感じたことは一度もありません

おすすめ記事