ListView应用步骤

来源:互联网 发布:二级域名 端口号 编辑:程序博客网 时间:2024/06/05 11:03

1、新建一个Layout  里边只有ListView

2、写一个Activity,此活动中分三部分(setContentView里写第一步的layout;初始化数据;将数据加到里边

public class Coashlist extends Activity {    private List<Coach> coachList=new ArrayList<>();//此为数据    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_coashlist);//加载List        AutoUtils.auto(this);        initCoach();//初始化数据        CoachAdapter coachAdapter=new CoachAdapter(Coashlist.this,R.layout.coach_adapter,coachList);        ListView listView=(ListView)findViewById(R.id.coach_list);        listView.setAdapter(coachAdapter);    }    private void initCoach(){        for(int i=0;i<10;i++){            Coach coachWang=new Coach("王大锤",R.drawable.up_red);            coachList.add(coachWang);        }    }}

3、新建一个Coach类,里边有各个属性

4、新建一个layout,用于展示ListView的子项

5、新建一个Adapter类继承Adapter

public class CoachAdapter extends ArrayAdapter<Coach> {    private int resourceId;//教练对应的资源ID    public CoachAdapter( Context context,  int resource,  List<Coach> objects) {        super(context, resource, objects);        resourceId=resource;    }    @NonNull    @Override    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {        Coach coach=getItem(position);//实例化教练类        View view;        ViewHolder viewHolder;        if(convertView==null){//如果是第一次初始化,用ViewHolder初始化,并存储            view=LayoutInflater.from(getContext()).inflate(resourceId,parent,false);            viewHolder=new ViewHolder();            viewHolder.coachImage=(ImageView)view.findViewById(R.id.coach_pic);            viewHolder.coachTextView=(TextView)view.findViewById(R.id.coach_name);            view.setTag(viewHolder);        }else {//下一次进入时直接读取            view=convertView;            viewHolder=(ViewHolder)view.getTag();        }        viewHolder.coachImage.setImageResource(coach.getImageId());//get方法实例        viewHolder.coachTextView.setText(coach.getName());        return view;    }    class ViewHolder{        ImageView coachImage;        TextView coachTextView;    }}

原创粉丝点击