[解決済み] AndroidのクラスBaseAdapterのgetItemとgetItemIdのメソッドの意図は何ですか?
質問
のメソッドの目的について知りたいのですが。
getItem
と
getItemId
をAndroid SDKのクラスAdapterに追加しました。
説明からすると
getItem
は、基礎となるデータを返す必要があります。 つまり、名前の配列がある場合
["cat","dog","red"]
を作成し、アダプタ
a
を使用すると
a.getItem(1)
は、"dog" を返すはずですよね? では
a.getItemId(1)
を返すか?
これらの方法を実際に利用したことがある方は、その例を教えてください。
解決方法は?
これらのメソッドは、リストのデータにアクセスするための、よりクリーンなアプローチだと私は考えています。のような方法で直接アダプタオブジェクトにアクセスするかわりに、 このメソッドを使用します。
myListData.get(position)
のようにアダプターを呼び出すだけです。
adapter.get(position)
.
も同様です。
getItemId
. 通常、リスト内のオブジェクトのユニークIDに基づいて何らかのタスクを実行したい場合に、このメソッドを使用することになります。これは特にデータベースで作業するときに便利です。返された
id
はデータベース内のオブジェクトへの参照であり、それに対してさまざまな操作(更新/削除/その他)を実行することができます。
つまり、生のデータ・オブジェクトからIDにアクセスする代わりに
myListData.get(position).getId()
を使用することができます。
adapter.getItemId(position)
.
これらのメソッドを使う必要があると感じた一例として、「Scala」を使用したプロジェクトがあります。
SeparatedListViewAdapter
. このアダプタは複数の異なる種類のアダプタを含むことができ、それぞれが異なる型 (通常) のデータを表します。を呼び出す際に
getItem(position)
の上で
SeparatedListViewAdapter
を送信した場合、送信した位置によって返されるオブジェクトが異なる場合があります。
例えば、リストに2つのセクション(フルーツとキャンディ)があった場合。を使用した場合
getItem(position)
と
position
のアイテムにたまたまあった。
フルーツ
セクションをリクエストした場合とは異なるオブジェクトを受け取ることになります。
getItem(position)
と
position
の項目を指しています。
お菓子
セクションを作成します。 そして、ある種の定数ID値を
getItemId(position)
どのようなデータであるかを表す
getItem(position)
を返すか、あるいは
instanceof
を使って、どのようなオブジェクトを持っているかを判断します。
これまで述べてきたこと以外では、これらのメソッドを本当に使う必要があると感じたことはありません。
関連
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
アンドロイドプロジェクトのパッケージングにgradleを使用する際の問題点
-
GoogleMapと連携し、位置情報の取得が可能
-
[解決済み] match_parentとfill_parentの違いは何ですか?
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
-
[解決済み] AndroidでSQLiteを使用する際に、並行処理の問題を回避するにはどうすればよいですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】ViewPagerを動的に更新しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
android.os の NetworkOnMainThreadException。
-
Gradle の同期に失敗しました。com.android.tools.build:gradle が見つかりませんでした。
-
Android: インポートモジュールエラー Android リソースのリンクに失敗しました
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
Error:A problem occurred configuring project ':app'. > ビルドを見つけられませんでした。
-
Androidプロセス生存のためのソリューション
-
AndroidStudioのショートカット 検索/置換
-
Android Studio常见错误之:Rendering Problems/The following classes could not be instantiated
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
Android studio 制約レイアウト ConstraintLayout