Click не работает с Listitem Listview android

Я реализовал android listview с помощью ListActivity. Здесь у меня есть проблема, когда при нажатии на элемент списка никаких действий не происходит, когда цвет вспышки также не приближается, это оранжевый цвет. Итак, вы имеете представление об этом любезном ответе на мой вопрос.

@Override
protected void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT)
            .show();

}

Я также помещаю этот код в главную функцию ListActivity.

Ответ 1

Первое, что вы должны отметить здесь, - когда в вашем элементе ListView присутствуют элементы Clickable, такие как кнопки или ImageButtons, они управляют событиями кликов. И поэтому ваш ListView не получит возможность принять событие click.

Что вам просто нужно сделать, установите для атрибута focusable значение false для Button или ImageButton, которое у вас есть в вашем ListView. Но все же они будут работать без проблем, а также будет работать ListView onListItemClick.

Попробуйте это,

        <Button  android:id="@+id/textsize_increaser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/back_button"
        android:focusable="false"
        android:text=" A + "/>

Здесь я добавил это android:focusable="false", и он отлично работает. попробуйте.

Ответ 2

Установили ли вы режим выбора ListView в SINGLE:

     listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

И если в элементе списка есть кликаемое изображение или текстовое изображение или кнопка, сделайте их неактивными (в классе адаптера):

        yourButton.setFocusable(false);
        yourButton.setFocusableInTouchMode(false);

Ответ 3

Используете ли вы пользовательский адаптер? и раздувание макета с помощью кнопки или любого представления, которое съедает фокус просмотра списка списка в качестве дочернего, тогда он не будет работать явно. не забудьте установить

    android:focusable="false"

для такого представления в XML файле. надеюсь, что это сработает для вас.

Ответ 4

Установите это в свой java файл listactivity

listview1.setFocusable(false);

Ответ 5

Eclipse предложил мне добавить textIsSelectable="true" в мои текстовые элементы в макете xml, который использовался для просмотра списка.

Ну, если вы хотите щелкнуть элементы в списке, вы не должны добавлять эти теги.

Ответ 6

обратитесь к этому сообщению для решения:

Щелчок не работает с анкетой списка Listitem Listview

View v = parent.getChildAt(position);
parent.requestChildFocus(v,view);
v.setBackground(res.getDrawable(R.drawable."Some drawable for clicked row"));

int count = parent.getChildCount();
for(int i=0; i<count; i++)
{
   if(i!=position)
   {
     v = parent.getChildAt(i);
     v.setBackground(res.getDrawable(R.drawable."some drawable for not clicked row));
   }
}

Ответ 7

listview.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v, int pos,
                    long id) {
                Toast.makeText(v.getContext(), exm.get(pos).getDefinition(),
                        Toast.LENGTH_SHORT).show();


            }
        });

Ответ 8

На самом деле есть параметр, предназначенный для предотвращения форинтов для просмотра детьми, просто добавьте следующее в родительский макет:

android:descendantFocusability="blocksDescendants"

Как поясняется в документации:

ViewGroup блокирует своих потомков от получения фокуса.

Ответ 9

убедитесь, что вы

  • Не использовать просмотр прокрутки с представлением списка
  • Не использовать Scroll View в макете позиции строки для представления списка

Если вид прокрутки присутствует на любом из вышеперечисленных мест, удалите его