豆子2018 2019-06-14 10:40 采纳率: 0%
浏览 480

求助,ListView没有执行getView方法

在一个Fragment中有一个ViewPager,ViewPager有两个页面,其中一个页面是列表页,使用了ListView,自定义了适配器,数据也确实能够查询到,但始终没有执行getView方法。这个ListView的height也是match__parent,但仍然无效

自定义的适配器:

public class BookListAdapter extends BaseAdapter {
    private LayoutInflater mInflater;
    private List<Book> mData;


    public BookListAdapter(Context context,List<Book> bookList){
        this.mInflater = LayoutInflater.from(context);
        Log.i("ttg","开始执行适配器构造,当前booklist的数量为"+bookList.size());
        mData=bookList;
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        Log.i("ttg","开始执行getCount,当前mData的数量为"+mData.size());
        notifyDataSetChanged();
        return mData.size();
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Log.i("ttg","调用getView");
        ViewHolder holder = null;

        if (convertView == null) {

            holder=new ViewHolder();

            convertView = mInflater.inflate(R.layout.booklist_item, null);
//            holder.img = (NetworkImageView)convertView.findViewById(R.id.img);
            holder.book_list_img = (ImageView) convertView.findViewById(R.id.book_list_img);
            holder.book_list_bookname = (TextView)convertView.findViewById(R.id.book_list_bookname);
            holder.book_list_author = (TextView)convertView.findViewById(R.id.book_list_author);
            holder.book_list_publisher = (TextView)convertView.findViewById(R.id.book_list_publisher);

            convertView.setTag(holder);

        }else {

            holder = (ViewHolder)convertView.getTag();
        }



        holder.book_list_bookname.setText((String)mData.get(position).getBookname());
        holder.book_list_publisher.setText((String)mData.get(position).getPublisher());
        holder.book_list_author.setText((String)mData.get(position).getAuthor());
        Log.i("ttg","数据设置完成");
//        holder.img.setImageUrl(mData.get(position).getPicture().getFileUrl(), imageLoader);
//         直接设置图片地址到NetworkImage,并将图片放入缓存
//        holder.img.setDefaultImageResId(R.mipmap.ic_launcher); // 当图片还没加载出来时显示的图片

        //BmobFile bmobFile=mData.get(position).getPicture();
        //Toast.makeText(getActivity(),bmobFile.getFileUrl(), Toast.LENGTH_SHORT).show();


        return convertView;
    }

    public final class ViewHolder{
        public ImageView book_list_img;
        public TextView book_list_bookname,book_list_author,book_list_publisher;


    }
        }

适配器会在数据查询之后与控件绑定:

BmobQuery<Book> query = new BmobQuery<>();
        query.order("-createdAt");// 按照时间降序
        Log.i("ttg", "开始查询数据");
        query.findObjects(new FindListener<Book>() {
            @Override
            public void done(List<Book> list, BmobException e) {
                Log.i("ttg", "查询完成,一共有" + list.size() + "条数据");
//                for (int i=0;i<list.size();++i){
//                    Log.i("ttg","第"+i+"条数据:"+list.get(i).getBookname());
//                }
                book_list_view.setAdapter(new BookListAdapter(getContext(),list));
  • 写回答

3条回答 默认 最新

  • Jimmy_buer 2019-06-14 15:35
    关注

    adapter中掉用notifyItemChanged,试一下.

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置