Я пытаюсь изменить фон элемента списка, когда он нажат, и, несмотря на то, что он пробовал то, что упоминалось в других сообщениях SO, элемент не хочет менять фон при нажатии.ListView элемент, не меняющийся фон
Что я делаю неправильно?
EDIT: То, что я хочу добиться:
Это как ListView по умолчанию реагирует при нажатии элемента (говорить об изменении фона), но так как я используя макет настраиваемых элементов списка, список не отвечает на клики вообще и очень скучный, поэтому я пытаюсь добиться аналогичного поведения при изменении фона всякий раз, когда я нажимаю элемент списка.
У меня есть этот простой селектор:
selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/selected_state" />
</selector>
selected_state.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/darkblue" />
</shape>
Я попытался установить его на селектор список и делая вид списка одиночный выбор
Компонов:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp">
...
<LinearLayout
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:id="@+id/listViewCentral"
android:choiceMode="singleChoice"
android:listSelector="@drawable/selector" />
</LinearLayout>
...
</RelativeLayout>
Просмотр списка пункт:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/selector">
...
</RelativeLayout>
И я использовал OnItemClick
слушателя, чтобы установить состояние в избранное
Основная деятельность:
ListView list = (ListView)findViewById(R.id.listViewCentral);
list.setAdapter(stringAdapter);
list.setOnItemClickListener(new TsClickListener());
СЛУШАТЕЛЬ:
public class TsClickListener implements AdapterView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view.setSelected(true);
}
}
Logcat пуст (без ошибок)