私のActivity
にはCheckedTextView
を含むListView
があります。アイテムがクリックされると、私はsetItemChecked(position, true)
を使ってアイテムを強調表示させます。ListView.getSelectedItemPosition()は予期せず0を返します
しかし、アクティビティが起動されたばかりのとき、アイテムにタッチすると、位置0のアイテムも強調表示されます。 getSelectedItemPosition()
を使用して、タッチモード(isinTouchMode
= true)であっても0を返しますが、-1は返しません。
listView
をスクロールした後、正常に動作します。getSelectedItemPosition()
は期待通り-1を返します。
なぜこのようなことが起こりますか?私はちょうどキーで入力されていないタッチモードで処理する活動をしたい。
避けることはできません。それを修正することはできますか? ListView.setSelection(-1)
を使用しましたが、何の効果もありません。
編集:私はどうにかしていくつかの冗長コードを削除して問題を解決します。私は、ListViewコントロールの最上部に表示するリストビューで位置を指定し、活動はので、私はコードの下に使用開始するときに強調表示でアイテムをしたい:
ListView.setItemChecked(position, true);
ListView.setSelectionFromTop(position, 0);
何冗長である(私は二度同じコードを使用):
ListViewAdapter.notifyDataSetInvalidated();
ListView.setItemChecked(position, true);
ListView.setSelectionFromTop(position, 0);
私はこの問題を解決しますが、私はまだ何が起こっているのかを知りたいです。 listViewを2回タッチすると、位置0が選択されるのはなぜですか?
私は疲れました。それは効果を持ちませんし、-1でもなく0を返します。 – Yeung