安卓ListView编程选择/高亮

4

我有一个简单的列表视图和列表适配器设置如下:

listAdapter = new ArrayAdapter<MyDomainObject>(this, android.R.layout.simple_list_item_1, listOfDomainObjects);
listView.setAdapter(listAdapter);

用户在列表上进行选择,然后跳转到另一个活动。在新的活动中,他们可以点击所选内容,返回到具有上述列表的活动。我想要突出显示之前所做的选择。目前,我查找匹配的列表条目并调用:

listView.setSelection(matchIndex);

这将把他们之前的选择置于列表顶部。是否有可能用默认的橙色突出显示之前的选择。我尝试了几种方法,但都没有成功。

2个回答

2
你现在的代码是没问题的。但是,如果用户使用的是触摸屏幕,则选择是否被“高亮”是根据这个决定的。如果他们最近使用的是触摸屏而不是轨迹球、D-pad或其他设备,则设备处于“触摸模式”,选择的高亮将不会显示。

为什么没有轨迹球/ D-Pad,选择不显示?这让我感到困惑。您能引用文档来解释一下吗? - mobibob
啊...我以为根据方法名称我已经了解了UI,但不明白为什么无法控制选择或接收选择通知(测试手机上没有轨迹球或d/pad)。现在我已经阅读了这一章节,并将经常复习。 - mobibob

0

使用 simple_list_item_activated_1 来使用简单列表。

此外,要突出显示所选行,请使用以下代码:

listview.setItemChecked(position,true);

位置是您想要选择的行 ID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接