[解決済み] カスタムアダプタを自作する場合、getView()メソッドはどのように動作するのでしょうか?
2022-11-22 15:25:35
質問
質問です。
- LayoutInflaterの機能は具体的に何ですか?
- 私が読んだすべての記事は、なぜ convertview が null かどうかを最初にチェックするのですか?それがヌルであるとき、それは何を意味し、そうでないとき、それは何を意味するのですか?
- このメソッドが受け取る親パラメータは何ですか?
どのように解決するのですか?
1:この
LayoutInflater
はレイアウト XML ファイルを受け取り、その内容からさまざまなビューオブジェクトを作成します。
2: アダプタはViewを再利用するように作られています。Viewがスクロールされて見えなくなったとき、新しく現れるViewの1つに利用することができます。この再利用されるViewは
convertView
. もしこれが null ならば、再利用される View が存在しないので新しく作成しなければならないことを意味し、そうでなければ新しく作成するのを避けるためにこれを使用すべきです。
3: この
parent
が提供されているので、適切なレイアウトパラメータのために、その中にビューを膨らませることができます。
これらをすべて使用すると、リスト (あるいはアダプタを使用するその他のビュー) に表示するビューを効果的に作成することができます。
public View getView(int position, @Nullable View convertView, ViewGroup parent){
if (convertView == null) {
//We must create a View:
convertView = inflater.inflate(R.layout.my_list_item, parent, false);
}
//Here we can do changes to the convertView, such as set a text on a TextView
//or an image on an ImageView.
return convertView;
}
を使用していることに注意してください。
LayoutInflater
は、その
parent
がその引数として使用できること、そして、どのように
convertView
が再利用されるのか。
関連
-
[解決済み] Android 8.0: java.lang.IllegalStateException: Not allowed to start service Intent
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] Eclipseが起動できない - Javaは起動したが終了コード=13を返した
-
[解決済み] 新しいAndroid Fragmentをインスタンス化するためのベストプラクティス
-
[解決済み] 画面下部のビューを揃えるには?
-
[解決済み] なぜフラグメントなのか、そしてアクティビティの代わりにフラグメントを使用するのはどんなときか?
-
[解決済み] FragmentのsetRetainInstance(boolean)を理解する。
-
[解決済み] カスタムリストビューアダプタのgetViewメソッドが複数回呼び出され、一貫性のない順序で呼び出される。
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] アダプタからActivityメソッドを呼び出す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 設定ページに移動せずに位置情報サービスをオンにする
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] XMLで矩形を描画できますか?
-
[解決済み] DialogFragmentを正しく終了させるには?
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] キャンバスに複数行のテキストを描画する
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。
-
[解決済み] Androidでツールバーの戻るボタンの色を変えるには?
-
[解決済み] FABアイコンの色を設定する