tesfen 2016-06-23 04:51 采纳率: 0%
浏览 1445
已采纳

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

  • Super秦 2016-06-23 08:09
    关注

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

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

报告相同问题?

悬赏问题

  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架