欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ListView的Adapter使用

程序员文章站 2022-03-23 22:55:16
实现的adapter的优化public class FruitAdapter extends ArrayAdapter {//默认的构造方法 public FruitAdapter(@NonNull Context context, int resource, @NonNull Object[] objects) { super(context, resource, objects); } @NonNull @Override /* p...

1.实现的adapter的优化

public class FruitAdapter extends ArrayAdapter {

//默认的构造方法
    public FruitAdapter(@NonNull Context context, int resource, @NonNull Object[] objects) {
        super(context, resource, objects);
    }

    @NonNull
    @Override
    /*
    position :当前item的id
    convertView:缓存
    parent:所有的item所在的布局
     */
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        String ss = (String) getItem(position);//获得数据的实例
        View view;
        ViewHolder holder;
        if (convertView == null){//反复利用布局
            view = LayoutInflater.from(getContext()).inflate(R.layout.layout,null);//加载每个item的布局
            holder = new ViewHolder();
            holder.fruit_name = view.findViewById(R.id.fruit_name);//布局中的TextView实例
            view.setTag(holder);
        }else {
            view = convertView;
            holder = (ViewHolder) view.getTag();
        }

        holder.fruit_name.setText(ss);
        return view;

    }

    class ViewHolder{
        TextView fruit_name;
    }
}

2.listView与ScrollView之间存在只显示一个item的问题:
这是需要自定义一个ListView,并重写一个方法才能正常显示:

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        //重新设置高度
        heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

本文地址:https://blog.csdn.net/qq_45902401/article/details/110221251

相关标签: android