tesfen 2016-06-29 05:42 采纳率: 0%
浏览 1313
已采纳

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条回答 默认 最新

  • 大白大白大白 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();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器