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

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

Хорошо, проблема, My listView для одного 1 не будет разрешать события выбора / запуска, а 2. не будет изменять подсветку строки при нажатии элемента. У меня есть стандартный TestActivity, расширяющий ListActivity, и я реализовал пользовательский 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.

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

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

Сандж


person Sanj    schedule 31.03.2011    source источник


Ответы (2)


Я предлагаю вам удалить 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();
        }
    });
person raukodraug    schedule 31.03.2011
comment
Спасибо, Раукодрауг, это вроде как работает, так как я применил селектор к каждому элементу, который показывает задний цвет, однако он по-прежнему не выбирает строку, т.е. не запускает событие - person Sanj; 01.04.2011
comment
Я рад, что это помогло вам, для другой вашей проблемы я отредактировал ответ - person raukodraug; 01.04.2011
comment
я дам ему мир в ближайшие 5 часов. - person Sanj; 01.04.2011
comment
Это своего рода работы следовали этим пунктам. stackoverflow.com/questions/2367936/ - person Sanj; 02.04.2011

следуя предложению raukodraug и сообщению ListView OnItemClickListener не отвечает?

Другой факт, как уже упоминалось, использует метод bindView, я использовал

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

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

введите здесь описание изображения

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

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

person Sanj    schedule 02.04.2011