Allisonton
tesfen
采纳率15.4%
2016-06-29 05:42 阅读 1.3k
已采纳

Android下拉列表刷新不出来

页面切换是用的Fragment+ViewPager来完成的,三个页面,SaveFragment,ShowFragment,SetFragment,现在在SaveFragment中设置了一个下拉刷新列表,想实现在ShowFragment中的Button点击,将数据保存,并在Save界面下拉刷新出列表,列表即Button点击保存的数据。这对于我来说挺难的,求大神指点,运行程序的时候总是不出现列表。代码贴出:

 ShowFragment中的button点击事件的处理:
 btnSave.setOnClickListener(new View.OnClickListener(){
     @Override
     public void onClick(View v){
        Log.i(TAG,"执行数据保存操作!");
        getActivity().runOnUiThread(new Runnable(){
            @Override
            public void run(){
                MainActivity mainActivity = (MainActivity)getActivity();
                SaveFragment saveFragment = mainActivity.getSaveFragment();
                //打算让列表以当前时间的名字的形式保存。
                //设置时间格式
                SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd/HH:mm:ss");
                //获取当前时间
                long time = System.currentTimeMillis();
                //将long转化为Date
                Date date = new Date(time);
                String timeSave = format.format(date);
                Log.i(TAG,"timeSave = " + timeSave);
                if(saveFragment != null){
                    saveFragment.addDateForList(timeSave);
                    saveFragment.notifyDataSetChanged();
                    Log.d(TAG,"date has been saved.");
                }
            }
        })
     }
 });

两个fragment都已经在MainActivity中声明了,

 下拉刷新列表的代码如下,我感觉问题在这里,但是我不知道怎么改:
 RefreshableView refreshableView = (RefreshableView)view.findViewById(R.id.refreshable_view);
 refreshableView.setOnRefreshListener(new RefreshableView.PullToRefreshListener(){
     @Override
     public void onRefresh(){
        try{
        //我觉得应该在try里面添加时间,但是不知道怎么去添加。。。
            Thread.sleep(3000);
        }catch(InterruptedException e){
            e.printStackTrace();
        }
        refreshableView.finishRefreshing();
     }
    },0);
    public void addDateForList(String date){
        dateList.add(date);
    }
    public void notifyDataSetChanged(){
        dateAdapter.notifyDataSetChanged();
    }

这是用到的主要的代码,程序运行的时候,用log来查看运行的情况的时候,
if里面的log并没有打印出来,不知道怎么修改

 if(saveFragment != null){
                    saveFragment.addDateForList(timeSave);
                    saveFragment.notifyDataSetChanged();
                    Log.d(TAG,"date has been saved.");
                }

安卓自学小白一枚,求大神路过指教啊~

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    qq_28026283 大白大白大白 2016-06-30 06:02

    1.private static DrawerLayout mDrawerLayout;
    2.在activity的oncreate()里面实例化
    3.public static DrawerLayout getmDrawerLayout() {
    return mDrawerLayout;
    }
    4.在fragment里面获取
    private DrawerLayout mdrawerLayout;
    在onActivityCreated()里面获取
    mdrawerLayout = MainPageActivity.getmDrawerLayout();

    点赞 评论 复制链接分享
  • qq_28026283 大白大白大白 2016-06-29 05:53

    没打印说明saveFragment为空了,你调试下mainActivity.getSaveFragment()返回的是什么。

    点赞 评论 复制链接分享

相关推荐