ListView Android не позволяет работать селектору и не позволяет выбирать

StackOverflow https://stackoverflow.com/questions/5501203

Вопрос

Хорошо, я знаю, что это может звучать как любые другие проблемы, связанные с проблемами 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.Я смогу это понять, спасибо.

enter image description here

Отредактировано

О, *%#$ Решено, нужно установить RelativeLayouts Add State from Children = true;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top