1

私は simplecursoradapter でリストビューを作成し、次のコードで項目のいずれかがクリックされたときにそれを強調表示するようにしました。

<selector xmlns:android="http://schemas.android.com/apk/res/android">  

<item
android:state_selected="true"
android:drawable="@color/blue" /> 

<item 
android:drawable="@color/white" />

</selector>

そして、選択したアイテムで、私は以下のようにしました。

list = (ListView) view.findViewById(android.R.id.list);
adapter = new SimpleCursorAdapter(getActivity(), R.layout.title_intro_list, articleCur, FROM, TO,1);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) 
{
view.setSelected(true);
}

リストビューで項目を選択すると正常に動作しますが、問題は、リストビューをスクロールすると、選択した項目が強調表示されたままにならないことです。

4

2 に答える 2

0

他の人が述べたように、リスト ビューがビューをリサイクルするため、選択したビューはページからスクロールするとリサイクルされます。これが問題の根本的な原因です。

xml 属性またはメソッドを使用して、ListView の選択モードをCHOICE_MODE_SINGLEに設定する必要があります。しばらく経ちましたが、クリックした位置が自動的に選択されたアイテムになると思いますが、そうでない場合は、ListView(パラメーター)を呼び出すことができますchoiceModesetChoiceMode()setSelection(position)parentonItemClick

于 2013-08-08T07:34:51.617 に答える