我有一个listview,其中包含textviews作为其元素。
答案 0 :(得分:8)
设置选择和设置焦点是两回事。如果你想将setSelection设置为某个项目,那么你可以使用下面的代码。
mListView.setSelection(position);
但这绝对不代表Listview
是专注的。为了集中注意力,你必须使用
mListView.requestFocus();
如果要点击按钮更改焦点,可以将代码放在按钮的onClick()
上。
答案 1 :(得分:4)
ListView有一个setSelected方法,它接受列表中项目的索引。
答案 2 :(得分:2)
对我来说问题已经解决了
listView.setItemsCanFocus(true);
答案 3 :(得分:1)
我想我处于同样的境地。我希望能够通过按钮以编程方式控制listview的焦点。
一个解决方案是处理setFocusableInTouchMode
,但我从来没有实现过它。
另一种解决方案是忘记焦点并使用可检查的列表视图。首先将listview设置为XML或java中的“单选模式”:Mylistview.setChoiceMode(1)
然后,您就可以使用Mylistview.setItemChecked(position, true)
因此,当您在申请午餐时(OnCreate),请使用Mylistview.setItemChecked(0, true)
检查您的第一项。
然后,如果您希望按钮选择下一个例子,请使用:
Mylistview.setItemChecked(Mylistview.getCheckedItemPosition() + 1, true)
您可以指定检查项目时的外观,以及不同的预先建立的可销售列表视图。
如果您需要更多解释,请参阅我的post
答案 4 :(得分:1)
您的ListView应该是这样的:
<ListView
android:id="@+id/my_list"
android:layout_width="wrap_content"
android:layout_height="200dp"
android:layout_margin="10dp"
android:choiceMode="none"
android:focusable="true"
android:fadeScrollbars="false">
<requestFocus />
</ListView>
mListView.setSelection(3); //or any other number