我想根據當前光標成員的某些屬性來篩選ListItem背景的顏色。我使用SimpleCursorAdapter將數據庫的值綁定到ListView。我所做的就是創建一個顏色選擇是這樣的:根據屬性更改背景顏色
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@android:color/holo_blue_dark" />
<item android:state_activated="true" android:state_selected="true" android:drawable="@android:color/holo_blue_dark" />
<item android:state_selected="true" android:drawable="@color/rosa" />
<item android:drawable="@android:color/transparent" />
</selector>
我的佈局是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/listitem_color" >
...
...
而且我有一個觀點粘合劑,我做到以下幾點:
mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.listitem, cur, cols, to,0);
mAdapter.setViewBinder(new ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if (columnIndex == 6) {
boolean dudoso = cursor.getInt(columnIndex) == 1;
TextView textView = (TextView) view;
textView.setText(dudoso ? "dudoso" : null);
if(dudoso)
{
LinearLayout ll=((LinearLayout)textView.getParent().getParent());
ll.setSelected(true);
}
return true;
}
return false;
}
});
但它不起作用。什麼是正確的方式來做我想要的?
我也希望如果選擇了行,從而具有不同的顏色。我希望所選的顏色優先於屬性顏色。 –
你是否給了你的選擇器xml作爲你的佈局的背景,你在哪裏點擊你的主要xml .....? –
是的。我會將listview行的佈局添加到問題中。 –