ListFragment onListItemClick больше не работает с Android 4.1 Jelly Bean

Я тестирую свое приложение в новой системе Android 4.1 Jelly Bean, и мой ListFragment больше не работает должным образом.

Когда я нажимаю на строку списка, функция onListItemClick больше не вызывается. Он отлично работает на Android 3.0 и Android 2.x.

Изменится ли что-нибудь в Android 4.x в отношении ListFragment или onListItemClick?

Одна точность, я использую «ListFragment» из android-support-v4.jar

 android.support.v4.app.ListFragment

Вот мой код ListFrangment:

public class MessagesListFragment extends ListFragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
        View view = inflater.inflate(R.layout.pull_to_refresh, null);
        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
         /* some initialization, working fine */
         /* Settings of the list Adapter*/

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
         int messagePosition = 0;
         if(position>0){
              messagePosition = position - 1;
          } else {
              Log.e("MessageListView", "[onListItemClick] position is inferior to zero,"
                + " message position is set to 0");
          }
          String expediteur = DomboxHome.messagesService.messagesArrayList.get(messagePosition).getExpediteur();
          String contenu = DomboxHome.messagesService.messagesArrayList.get(messagePosition).getContenu();
          Log.d("MessageListView","[onListItemClick] click on message position : "+messagePosition);

          ((MessagesActivity)getActivity()).onChooseMessageDetails(expediteur, contenu);

     }

comment
Если вы используете пакет совместимости, я почти уверен, что некоторые вещи сразу не будут работать. Было это видео, которое я смотрел, в котором говорилось, что все, что является последним и лучшим, вероятно, не будет поддерживаться новейшей ОС какое-то время. Поэтому я думаю, что вы либо найдете обходной путь, либо, к сожалению, подождите.   -  person Andy    schedule 18.07.2012


Ответы (2)


Я нашел решение,

Вина была не в android-support-v4.jar, а в android-pullorefresh с библиотекой для реализации pull-to-refresh-list.

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

Библиотека не была полностью совместима с Jelly Bean, но это уже исправлено командой (кстати, спасибо команде!)

Исправлена ​​ошибка

person Thomas Besnehard    schedule 19.07.2012
comment
Патч мне кажется работает. По крайней мере, я могу прокручивать и щелкать снова. - person harmanjd; 24.07.2012

Я обнаружил эту ошибку в своих приложениях с библиотекой PullToRefresh, которые не поддерживают новый Android 4.1.

Чтобы решить проблему, я использую форк библиотеки

https://github.com/chrisbanes/Android-PullToRefresh

Эта библиотека потрясающая. Имеет новые функции PullToRefreshWebView и PullToRefreshGridView, а также другие функции, такие как pulltorefresh снизу (для извлечения нижней части списка) и другие мысли, похожие на новые анимации.

person Aracem    schedule 25.07.2012