Я знаю, что это обсуждалось много раз в таких вопросах, как этот question и this один. Но я должен сказать, что это не работает для меня.Как пометить элемент списка?
Что я хотел достичь, это отметить элемент ListView через свой CustomAdapter в особой ситуации. Таким образом, не через пользователя и не щелкните слушателей. У меня есть рабочее решение, установив фоновый рисунок для конвертирования.
Теперь я хочу изменить это и дать селектору задание, которое является более чистым решением. Но я не могу заставить его работать. Нет проблем, чтобы установить поведение для нажатия элемента и установить другой цвет. Но я не могу отметить его как выбранный после того, как я нажал на элемент.
Я пробовал разные комбинации с помощью своего listview_item_selector и listview_selector. И я думаю, что я пропустил что-то очень общее. Вот почему я сделал настройку, чтобы выяснить, как пометить элемент после его нажатия.
Вот мой list_item_selector:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@android:color/transparent"/>
<item android:state_selected="true" android:drawable="@android:color/transparent"/>
<item android:drawable="@drawable/state_normal"/>
</selector>
И мой listview_selector выставиться в ListView в качестве селектора:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/state_pressed"></item>
<item android:state_selected="true" android:drawable="@drawable/selected_item"/>
</selector>
Как я уже сказал state_pressed
работает. Но state_selected
гонит меня орехами.
По крайней мере, мой макет для пользовательских элементов:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listview_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/listview_item_selector">
<TextView
android:id="@+id/list_tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFEE"/>
<TextView
android:id="@+id/list_tv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#FFEEEE"/>
</LinearLayout>
Я был бы признателен за любые предложения.
Большое спасибо за это! Я не знал об этом состоянии и что я должен установить активированный компонент. Спас день –