setOnItemClickListener не запускает никаких событий

У меня есть собственный адаптер списка, и мне нужно запустить новое действие, когда пользователь щелкает строку во фрагменте, но кажется, что setOnItemClickListener не работает. Я пытался добавить как Toast, так и Log, но не вижу ни текста в logcat, ни всплывающих уведомлений на экране.

Что не так с моим кодом?

singolo_personaggio.xml (это настраиваемый макет строки)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dp">

    <LinearLayout
        android:id="@+id/image_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="3dp">

        <ImageView
            android:id="@+id/lista_personaggi_icon"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_alignParentLeft="true"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

    <TextView
        android:id="@+id/lista_personaggi_nome"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/image_container"
        android:layout_toRightOf="@+id/image_container"
        android:layout_marginLeft="10dp"
        android:textStyle="bold"
        android:textSize="22dp"
        android:text="Name"
        />

    <TextView
        android:id="@+id/lista_personaggi_ruolo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/image_container"
        android:layout_below="@+id/lista_personaggi_nome"
        android:textSize="18sp"
        android:text="Role"
        />
</RelativeLayout>

Это код Java:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {

            Integer pageToShow = getArguments().getInt(ARG_SECTION_NUMBER);

            View rootView = inflater.inflate(R.layout.fragment_choose_character, container, false);
            ListView listView = (ListView) rootView.findViewById(R.id.listViewPersonaggi);

            personaggiDB = new DatabasePersonaggiHandler(getContext());
            ArrayList<Personaggio> personaggi = personaggiDB.getAllPersonaggi(pageToShow);

            // Adatto il personaggio alla grafica della lista
            this.m_adapter = new PersonaggioAdapter(getContext(), R.layout.riga_personaggio, personaggi);
            listView.setAdapter(this.m_adapter);

            // Su ogni elemento della lista aggiungo il click
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

                    Toast.makeText(getContext(), "show this", Toast.LENGTH_LONG);
                    Log.d("MYAPP -->", "I am here");
                    // Recupero l'intero oggetto cliccato
                    //Personaggio personaggioScelto = m_adapter.getItem(position);

                    //Intent singoloPersonaggioIntent = new Intent(getContext(), SingoloPersonaggioActivity.class);
                    //singoloPersonaggioIntent.putExtra("PersonaggioObj", personaggioScelto);
                    //startActivity(singoloPersonaggioIntent);
                }
            });

            return rootView;
        }

person Christian Giupponi    schedule 01.01.2018    source источник
comment
разместите свой родительский макет.. я имею в виду основной макет... макет, который раздувает фрагмент..   -  person Santanu Sur    schedule 01.01.2018
comment
вам нужно Toast.makeText(getContext(), "show this", Toast.LENGTH_LONG).show();   -  person Pavneet_Singh    schedule 01.01.2018
comment
хорошо, но журнал должен прийти ryt??   -  person Santanu Sur    schedule 01.01.2018


Ответы (1)


Вы должны добавить

android:focusable="false"

к кликабельным элементам singolo_personaggio.xml из-за старой проблемы с Android.

Надеюсь, это прояснит проблему.

person Dimitar    schedule 01.01.2018
comment
Спасибо, теперь я могу нажимать на элементы, но мое приложение просто перезапускается при каждом нажатии. - person Christian Giupponi; 01.01.2018
comment
@ChristianGiupponi Странно, ты решил это? Скорее всего, это авария. Чтобы узнать точную причину, вы должны исследовать logcat. - person Dimitar; 01.01.2018
comment
Да, я пытаюсь, но каждый раз, когда logcat очищает вывод, я не вижу, где ошибка. - person Christian Giupponi; 01.01.2018
comment
Если вы используете Android Studio, возможно, это SO answer Может быть полезно в этом отношении. - person Dimitar; 01.01.2018
comment
@ user8, не могли бы вы уточнить, о каких проблемах с Android вы говорите? в чем собственно проблема? - person JoxTraex; 01.01.2018
comment
@ user8 Я обновил ваш пост, добавив ссылку на эту ссылку :) - person JoxTraex; 02.01.2018