豆子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 Matlab问题解答有两个问题
  • ¥50 Oracle Kubernetes服务器集群主节点无法访问,工作节点可以访问
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。
  • ¥15 stm32的can接口不能收发数据
  • ¥15 目标检测算法移植到arm开发板
  • ¥15 利用JD51设计温度报警系统
  • ¥15 快手联盟怎么快速的跑出建立模型