OnListItemClick не вызывается в Listfragment

Привет, у меня есть проблема с методом onListItemClick в ListFragment.

У меня есть активность, которая содержит 2 ListFragments. Первый – суб-навигационный, а второй – некоторый контент. Sub nafigation werks отлично работает, и событие onListItemClick вызывается при нажатии на элемент списка. Но для второго ListFragment ничего не происходит. Метод не вызывается.

До сих пор я также пытался заменить Listfragment стандартным фрагментом и вручную установить setOnItemClickListener. Но он не запускается, когда я нажимаю на запись списка. Я также попытался протестировать его другим слушателем (например, onLongItemClick), но ничего не произошло.

Это настройки для моего списка.

<ListView android:id ="@+id/mylistview" android:layout_width ="match_parent" android:layout_height ="match_parent" android:divider ="@android:color/transparent" android:dividerHeight ="10dp" android:listSelector ="@android:color/transparent" android:cacheColorHint ="@android:color/transparent"/> 

Обратите внимание, что я заменил id стандартным «@android: id / list» при использовании ListFragment.

Кто-нибудь знает, что здесь не так? Может ли быть, что другие ListFragments получают все вызовы onListItemClick и не позволяют этому уволить?

Вот адаптер, который прилагается к списку:

 setListAdapter(new CustomRatingBarListAdapter(mListEntries, getActivity(), R.layout.content_view_list_layout, new int[] { R.id.list_item_text1 }, new String[] { TEXT}); 

Если в вашем макете есть элемент, который может украсть входные данные других компонентов, таких как RatingBar, этот компонент должен быть определен как неконфигурируемый, поэтому он не будет захватывать события.

Измените элементы списка (строки) вашего адаптера (файл * .xml в макете / папке):

 android:focusable="false" 

Или если вы вводите их программно, код:

 yourChildView.setFocusable(false); 

Сделайте это со всеми компонентами пользовательского интерфейса, которые могут сфокусироваться, такими как Button, RatingBar, EditText, ToggleButton внутри представления, который составляет элемент списка (строка) и т. Д.

Хорошо, я нашел ошибку. Это было нечто совершенно другое. На самом деле у меня был рейтинговый бар в качестве элемента списка, и даже он не охватывал весь элемент списка, он каким-то образом получил все события кликов.

Изменение видимости для GONE на данный момент решило проблему. Поэтому проблема заключалась в компоновке одного элемента списка, а не адаптера.

OnTouchListener() этого использовать OnTouchListener() вместо других компонентов в моей строке списка сделал трюк для меня. Надеюсь, что это поможет.

Я думаю, вы можете получить свой ListView, вызвав этот метод getActivity() .

Если я прав, используйте этот getListView(); Insted of getActivity() .