Android中怎样用自定义的adapter加载日期列表

想实现以下的效果,因为自己技术大白,不知道怎么处理,贴出代码:
我是用ViewPager + Fragment实现页面切换的,其中在fragmentB中有个按钮button,fragmentA中有个listview,现在想实现的是,通过点击B中的button,在A中的listview中显示一个item,item的名字用当前时间来设置。我用的是自定义的adapter,

private class DateAdapter extends ArrayAdapter<Date_item>
{
    private int resourceId;
    public DateAdapter(Context context, int dateresourceId, List<Date_item> objects){
        super(context, dateresourceId,objects);
        resourceId = dateresourceId;
    }
    @Override
    public View getView(int position,View convertView, ViewGroup parent){
        Date_item date_item = getItem(position);//获取当前项的date实例
        View view;
        ViewHolder viewHolder;
        if(convertView == null){
            view = LayoutInflater.from(getContext()).inflate(resourceId,null);
            viewHolder = new ViewHolder();
            viewHolder.date = (TextView)view.findViewById(R.id.chart_date);
            view.setTag(viewHolder);//将viewHolder缓存到view中
        }else {
            view = convertView;
            viewHolder = (ViewHolder)view.getTag();
        }
        return view;
    }
    class ViewHolder{
        TextView date;
    }
    }

我将A中列表的item也设置在了B中:

 //列表item的时间形式
 //设置时间格式
 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss");
 //获取当前时间
 long time = System.currentTimeMillis();
 //将long转化为Date
 Date date = new Data(time);
 String timeSave = format.format(date);

在B中的button的监听事件里面:

btn.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        DateAdapter dateAdapter =new DateAdapter(getActivity(),R.layout.item_layout,dateList);
        listView.setAdapter(dateAdapter);
    }
}) 

程序一运行就闪退,错误是NullPointerException:Attempt to invoke virtual method'void android widget.ListView.setAdapter(android.widget.ListAdapter)'on a null object reference.
请问这是什么情况,这问题困了我很久了,在线等,感谢各位

3个回答

先说一下,两个Fragment如何进行通信,因为两个Fragment都依赖Activity, 在Activity中设置两个方法,分别是getFragmentA()和getFragmentB(),分别返回FragmentA和FragmentB的对象,在B中要操作A,就是先getActivity,这样就拿到Activity了,就可以再通过Activit去getFragmentA()方法,就可以拿到A对象,拿到A以后再去调用A的方法就好了,这个A你可以写一下添加数据或者刷新列表的方法
把你的那个实现了一下,代码中都写的特别详细,百度云链接http://pan.baidu.com/s/1geIk4mR,自己看吧,加油~

Allisonton
tesfen 你好,在将你说的办法利用到我的程序中,发现这样的问题,点击按钮,fragmentA中没有出现列表,采用下拉刷新的方法也还是一样没有出现,用log来查看,貌似在button里面出了问题,但是我又不知道往哪个方向去改,求解啊~
3 年多之前 回复
Allisonton
tesfen 非常感谢,受教
3 年多之前 回复

你的问题是两个fragment如何通信,可以使用广播,不推荐使用具体的fragment实例去访问内部对象

Allisonton
tesfen 利用广播来传递?
3 年多之前 回复

从报错上来看 listView 这空;
建议你通过Activity来通信;通过接口监听的方式;

Allisonton
tesfen 麻烦细说一下怎么用接口呀?一切都在自学中,或者大神给个方向,我自己边学边用
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!