ListView Android не позволяет селектору работать и не разрешает выбор - PullRequest
3 голосов
/ 31 марта 2011

Хорошо, я знаю, что это может звучать как любые другие проблемы, связанные с проблемами ListView и ListActivity, но это не так, я сойду с ума, как и на прошлой неделе, продолжая поиск по всем сообщениям, чтобы найти какое-либо решение этой проблемы.это может помочь мне.Уже пробовал Фон элемента ListView с помощью пользовательского селектора и GetView Vs.BindView в пользовательском адаптере CursorAdapter? все остальные возможные сайты блогов ...

Хорошо, проблема. Мой listView для одного 1 не разрешает события выбора / запуска и 2. не изменяет подсветку строки, когдапункт нажал.У меня есть стандартное TestActivity расширение ListActivity, и я реализовал пользовательский TestCursorAdapter extends SimpleCursorAdapter

Теперь в XML я имею дело с test_list_view.xml и вторым row_view.xml Теперь я следовал приведенным выше указаниямответы и реализовать selector как row_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.

Любая помощь, парни, будет высоко оценена.

заранее спасибо.

Сандж

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

в ответ на предложение Раукодрауга и сообщение ListView OnItemClickListener не отвечает?

Еще один факт, как уже упоминалось, использует метод bindView, я использовал

view.setClickable(true);
view.setFocusable(true); 

элемент кликработ, только если вы нажмете на область, отмеченную желтым цветом и ImageView.Я должен быть в состоянии понять это, спасибо,

enter image description here

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

Oh *% # $ Решено, необходимо установитьRelativeLayouts Add State from Children = true;

1 голос
/ 31 марта 2011

Я предлагаю вам удалить android:focusable="true" из ListView.

Кроме того, вы можете использовать selector в качестве цвета фона элементов, отображаемых в ListView. Также убедитесь, что эти элементы не вызывают onClick или onTouch или что-то в этом роде, и пусть ListView обрабатывает события щелчка.

Надеюсь, это поможет

EDIT:

для вашей проблемы с выбором элемента используйте

lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            yourMethod();
        }
    });
...