2014-01-21 10 views
8

私は単純なListViewを持っており、setChoiceModeListView.CHOICE_MODE_SINGLEに設定したアイテムがいくつかあります。これはアイテムをタッチすると強調表示されることを意味します。ユーザーがどのようなメニューの選択肢見ることができるこの方法は、(ListViewがメニューです)選択した:プログラムでリストビューでアクティブ化されたアイテムを設定する

listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

は、しかし、私は(ない触れることによって)コードからその選択を変更したいです。私はこれを試しました:

listView.setSelection(0); 

しかし、それは効果がないようです。おそらく、選択と活性化は異なる概念ですから。利用可能なsetActivated(int)メソッドはありません。

+1

'.setItemChecked(position、true);' –

+2

@Shayanpourvatanそれを試してみてください。あなたのコメントは答えになるはずです:)。 –

答えて

17

を選択して位置を設定するlistView.setItemChecked(position, true)としてListView.setItemChecked(int position, boolean checked)メソッドを使用する必要があります。

listView.setItemChecked(position, true); 
+0

これをonCreate()メソッドで試したところ、リストを初期化してアダプタを設定しました。私はこれを私が呼ぶべき別の場所がありますか? ..ありがとう – gnB

+1

@gnBあなたのリストにアダプタを設定した後、このコードを使用する必要があります。 –

0

ドキュメントにはIf in touch mode, the item will not be selected but it will still be positioned appropriatelyと記載されています。

だから、あなたは、コードを次のように項目を選択することができます

1

この方法を使用するには、私のため

listView.performItemClick(listView, position, listView.getItemIdAtPosition(position)); 
を働きました
+0

こんにちは私はこれを試しましたが、最後のparam呼び出しの値は0を返します:私はここで試してみました:長いitemId = myListView.getItemIdAtPosition(0);私はそれから例外を得る。私はonCreate()メソッドでこれを呼び出します。私はそれを呼び出すべき別の場所がありますか?ありがとう – gnB

関連する問題