0

ArrayAdapter のビューにアクセスできるようにしたい:

public View getView(int position, View convertView, ViewGroup parent)

これにアクセスする方法がわかりません:

View myView = myArrayAdapter.getView(myPosition, myView, ?);

ViewGroup の親を取得する方法がわかりません。

4

2 に答える 2

0

アップデート:

ビューを返すときに使用される背景リソース/色を保持するデータ セット内のデータにフィールドを追加してみてください。

holder.background = dataSet.get(position).getBackground()

このホルダーのことで私が何を話しているのかわからない場合は、アンドロイドでリストビューを「スムーズに」ロードする方法を確認してください

年:

アダプターを含むListViewが親の ViewGroupだと思います。

とにかく、ArrayAdapter を含む ListView を使用しないのはなぜですか? ListView は、アダプターではなく Views のコンテナーであり、データ コレクションのみを保持し、ListView が要求したときに必要に応じてビューを作成して返します (fe、スクロール時)。位置 X のビューをフェッチできたとしても、パラメーターとして渡す convertView はListViewが保持および表示しているものではないため、機能しないと思います。

ListView では、任意の時点で最大 7 ~ 8 個のビューが膨張していることを考慮してください (正確な数はわかりません)。ListView が行うことは、アダプターのgetviewを呼び出してそれらを埋めることです。

つまり、単一の行 (単一のビュー) を更新するには、アダプターのデータ コレクションを更新する必要があります。次に、推測して、そのビューを ListView から取得して無効にしようとしますが、これがうまくいくとは思えません。

これらの概念は正しいと思いますが、間違っている場合は、誰かが私を修正してくれるとありがたいです.

一度に 1 つのビューだけを更新したいのはなぜですか?

于 2010-09-30T08:58:48.530 に答える