0

我正在使用 ListView 来显示项目列表。我点击一个项目以“选择”它,该项目在列表中短暂变为橙色,但随后返回背景颜色。

如何使该项目保持“点亮”,直到我取消选择它(通过再次点击该项目)?

另外,我可以调用一个方法来清除该列表的所有选定项目吗?

4

2 回答 2

0

您需要使用选择器,然后在 onListItemClick() 中使用setSelected(true)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true"
        android:drawable="@color/orange" />
    <item android:state_selected="false"
        android:drawable="@android:color/list_default" />
</selector>

还要覆盖我的 onListItemClick() 方法:

@Override
protected void onListItemClick(ListView l, View view, int position, long id) {
    super.onListItemClick(l, view, position, id);
    view.setSelected(true);
}

EDIT:
public class YourClass extends ListActivity implements OnItemClickListener {

@Override
public void onCreate(Bundle icicle){
    super.onCreate(icicle);
    setContentView(R.layout.your_layout);

    getListView().setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) {
    view.setSelected(true);
}

}

于 2013-04-02T00:43:56.407 回答
0

你需要一份状态清单

在 res/drawable 创建一个 list_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item 
    android:state_selected="true"
    android:drawable="@color/orange" />

</selector>  

在列表视图项的布局中,将以下代码添加到主框架布局中

android:background="@drawable/list_selector"  

确保orange colorres/values/colors

于 2013-04-02T00:27:43.610 回答