0

私はすでにアダプターを入力しListviewており、正常に動作します。

私の問題は、選択したときに特定の行アイテムのテキストと背景の色を (TextView を使用して) 変更する方法です。

        @Override
        public void onItemClick(AdapterView<?> a, View v, int position, long id) {
            int visiblePosition = listView1.getFirstVisiblePosition();
            View view = (View)listView1.getChildAt(position);
.....
    });

しかし、うまくいきません。

ところで、リストビューでスクロールするときにデータがロードされないようにする方法(カスタムアダプターを使用)または最初の実行時にアダプターをすべての行に入力する方法を教えてください。

4

1 に答える 1

1

スクロールするたびにリストビューの子が再利用されるため、機能しません。

データを更新してnotifyDataSetChangedを呼び出すか、データを更新して次のようなものを使用する必要があります。

int visiblePosition = mListView.getFirstVisiblePosition();
View view = mListView.getChildAt(position - visiblePosition);
if(view!=null)
  {
  // update the view to have a different background and other stuff...
  }

2 番目の方法に関するメモ:

  • 一部の adapterView では、2 番目の方法が期待どおりに機能しない場合があります。

  • ビューのサイズを変更するとどうなるかわかりません。

于 2013-06-09T17:02:43.670 に答える