【问题标题】:ListFragment onListItemClick don't work anymore with Android 4.1 Jelly BeanListFragment onListItemClick 不再适用于 Android 4.1 Jelly Bean
【发布时间】:2012-07-17 10:43:02
【问题描述】:

我正在新的 Android 系统 4.1 Jelly Bean 中测试我的应用,但我的 ListFragment 无法正常工作了。

当我单击列表的行时,函数onListItemClick 不再调用。它曾经在 Android 3.0 和 Android 2.x 上正常工作

关于ListFragmentonListItemClick,Android 4.x 有什么变化吗?

一个精度,我正在使用来自 android-support-v4.jar 的“ListFragment”

 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);

     }

【问题讨论】:

  • 如果您使用的是兼容性包,我几乎可以肯定有些东西不能马上工作。我看过这个视频,它说最新和最伟大的任何东西都可能暂时不会被最新的操作系统支持。所以我最好的猜测是你要么找到解决办法,要么遗憾地等待。

标签: android android-fragments android-view android-4.0-ice-cream-sandwich android-fragmentactivity


【解决方案1】:

我找到了解决办法,

责任不在 android-support-v4.jar 上,而是在 android-pulltorefresh 上,其中有一个实现 pull-to-refresh-list 的库。 p>

Android pull to refresh list

该库与 Jelly Bean 不完全兼容,但已由团队修复(顺便感谢团队!)

Bug fixed

【讨论】:

  • 补丁似乎对我有用。至少我可以滚动并再次点击。
【解决方案2】:

我在具有不支持新 Android 4.1 的 PullToRefresh 库的应用中发现此错误

为了解决这个问题,我使用了库的一个分支

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

这个图书馆很棒。具有新的 PullToRefreshWebView 和 PullToRefreshGridView 以及其他功能,例如从底部拉取刷新(拉到列表底部)和其他类似新动画的想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多