以编程方式突出显示ListView项目

时间:2015-11-15 21:40:12

标签: java android xml listview

对于同样的问题有无数的答案,但是它们似乎都不适合我,我不确定我做错了什么。

这是我的class B { public: virtual ~B() {} int get_a() const { do_something(); return a; } virtual void do_something() const { std::cout << "In B\n"; } private: int a{}; }; class D : public B { virtual void do_something() const { std::cout << "In D\n"; } }; int main() { D d; d.get_a(); }

activity.xml

以下是<ListView ... android:listSelector="@drawable/list_view_selector" />

list_view_selector.xml

以下是<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/list_view_item_border_selected" /> </selector>

list_view_item_border_selected.xml

最后,在我的活动中(以及在UI线程上运行):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <stroke android:width="2dip" android:color="#000" />
</shape>

我还尝试过其他final ListView listView = (ListView) this.findViewById(R.id.trackList); listView.setItemChecked(0, true); 以及各种方法调用,例如android:state_X

这些似乎都没有做任何事情。通过将.setSelection(0)更改为仅具有默认状态,我可以在触摸时获得要突出显示的项目,如下所示:

list_view_selector.xml

但是,当我想从代码中更改选择时,这对我没有帮助。我做错了什么?

0 个答案:

没有答案