ListView Android не позволяет селектору работать и не разрешает выбор
Хорошо, я знаю, что это может звучать как любые другие проблемы, связанные с проблемами ListView и ListActivity, но это не так, я сойду с ума, как и на прошлой неделе, продолжая поиск по всем сообщениям, чтобы найти какое-либо решение, которое может помочь мне. Уже попробовал фон элемента ListView через пользовательский селектор и GetView Vs. BindView в пользовательском адаптере Cursor? всевозможные блоги на сайтах...
Хорошо, проблема в том, что My 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
,
Любая помощь, ребята, будет высоко оценена.
заранее спасибо.
Sanj
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();
}
});
После предложения Раукодрауга и публикации ListView OnItemClickListener не отвечает?
Еще один факт, как упомянуто использование bindView
метод, который я использовал
view.setClickable(true);
view.setFocusable(true);
щелчок элемента работает, только если вы щелкнете по области, отмеченной желтым, и ImageView
, Я должен быть в состоянии понять это, спасибо,
отредактированный
Oh *%#$ Решено, необходимо установить RelativeLayouts Add State from Children = true;