Android ListView 项目如何在程序中实现高亮显示

6

我知道这个问题已经被问过了,但我还没有找到完全的答案(对Android新手感到抱歉)。

我的应用程序启动活动有一个EditText(称为searchbox),一个ListView(designations)和一个Spinner(types)。

我使用EditText作为搜索框,必须通过自定义编辑将字符串传递以使搜索更加灵活。之后,我将其与“designations”中最接近的近似值匹配,并执行

designations.setSelection(j);

正如预期的那样,这将把所需项目置于指定层级的顶部。但我无法找到一种通过代码突出显示它的方法。
现在,我知道如果设备处于触摸模式,则不会发生选定项目的突出显示。因此,我的搜索框的onTextChanged事件的最后4行是:
        designations.setFocusable(true);            
        designations.setFocusableInTouchMode(true);
        if (match==true)      designations.setSelection(j);
        if (st.length()==0)   designations.setSelection(0);

毫无结果。

现在,searchbox的afterTextChanged(Editable s)中没有任何代码;

所以,有人能给我提示吗?

谢谢 ~dh

2个回答

3

请查看requestFocus()以及可能的requestChildFocus()函数。


谢谢jq,那个方法有效(只需使用requestFocus())。然而,在阅读了这篇文章之后: http://android-developers.blogspot.com/2008/12/touch-mode.html我觉得我不会实现高亮显示了还是谢谢,今天又学到了一件事情 - David Homes

2

你尝试过将实际的View设置为选定状态吗?

designations.setSelection(j);
designations.getSelectedView().setSelected(true);

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