ListView Android не позволяет работать селектору и не позволяет выбирать
-
14-11-2019 - |
Вопрос
Хорошо, я знаю, что это может звучать как любые другие проблемы, связанные с проблемами ListView и ListActivity, но это не так, я сойду с ума, поскольку на прошлой неделе я продолжал искать все сообщения, чтобы найти какое-либо решение этой проблемы, которое может помочь. мне.Уже попробовал Фон элемента ListView через пользовательский селектор и GetView против.BindView в пользовательском CursorAdapter? все остальные возможные блоги-сайты...
Хорошо, проблема, мой listView для одного 1 не позволяет выбирать/активировать события и 2.не изменит подсветку строки при нажатии на элемент.у меня стандарт TestActivity
расширение ListActivity
и я реализовал Custom TestCursorAdapter extends SimpleCursorAdapter
Теперь о том, что у меня есть с точки зрения XML. test_list_view.xml
и второй row_view.xml
Теперь я последовал приведенным выше ответам и реализовал selector
как row_selector.xml
.Но проблема в том, что строки не принимают никаких событий щелчка или фокуса.Я реализовал базовый тост, чтобы указать, что что-то происходит.
@Override
protected void onListItemClick(ListView l, View v , int postion, long idontnow){
Toast.makeText(getApplicationContext(), "Hello World", Toast.LENGTH_SHORT ).show();
}
часть test_list_view.xml
<ListView android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:cacheColorHint="#00000000"
android:focusable="true"
android:listSelector="@color/row_selector"
android:background="@color/Transparent"/>
часть selector.xml (в основном скопированная и вставленная из одной из вышеупомянутых ссылок)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false"
android:drawable="@color/Transparent" />
<item
android:state_focused="true"
android:state_enabled="false"
android:state_pressed="true"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:state_enabled="false"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@color/blue" />
<item
android:state_focused="true"
android:drawable="@color/green" />
<item
android:state_selected="true"
android:drawable="@color/blue" />
<item
android:drawable="@color/Transparent" />
</selector>
Я использовал все варианты, которые мне известны, и все равно ничего. Единственное существенное отличие в том, что ребята, которых я не использую getView
вместо этого я использую bindView
.
Любая помощь, ребята, будет высоко оценена.
заранее спасибо.
Санж
Решение
Предлагаю вам удалить android:focusable="true"
из ListView
.
Кроме того, вы можете использовать selector
в качестве цвета фона элементов, отображаемых в ListView
.Также убедитесь, что эти элементы не вызывают onClick
или onTouch
или что-то в этом роде, и пусть ListView
обрабатывать события кликов.
надеюсь, это поможет
РЕДАКТИРОВАТЬ:
для вашей проблемы с выбором элемента используйте
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
yourMethod();
}
});
Другие советы
следуя предложению и сообщению РаукодраугаListView OnItemClickListener не отвечает?
Еще один факт, как уже упоминалось, использование bindView
метод, я использовал
view.setClickable(true);
view.setFocusable(true);
щелчок по элементу работает, только если вы нажмете на область, отмеченную желтым цветом, и ImageView
.Я смогу это понять, спасибо.
Отредактировано
О, *%#$ Решено, нужно установить RelativeLayouts Add State from Children = true;