我正在使用 ListView 来显示项目列表。我点击一个项目以“选择”它,该项目在列表中短暂变为橙色,但随后返回背景颜色。
如何使该项目保持“点亮”,直到我取消选择它(通过再次点击该项目)?
另外,我可以调用一个方法来清除该列表的所有选定项目吗?
我正在使用 ListView 来显示项目列表。我点击一个项目以“选择”它,该项目在列表中短暂变为橙色,但随后返回背景颜色。
如何使该项目保持“点亮”,直到我取消选择它(通过再次点击该项目)?
另外,我可以调用一个方法来清除该列表的所有选定项目吗?
您需要使用选择器,然后在 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);
}
}
你需要一份状态清单
在 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 color
在res/values/colors