【用法】ListView

1、自定制ListView

(关键还是在Adapter,ListView只是简单的调用)

Adapter实现:把数据加载到子项布局里面去。

Adapter的构造函数有三个参数:上下文,子项布局,数据

1.数据类
2.子项布局类
3.在MyAdapter类里的getView()里实现把数据放到子项布局里(这是关键)

public class FruitAdapter extends ArrayAdapter<Fruit> {
    private int resourceId;//在FruitAdapter的构造函数里,获得子项布局资源
    public FruitAdapter(Context context, int resource, List<Fruit> objects) {
        super(context, resource, objects);
        resourceId = resource;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Fruit fruit = getItem(position);
        View view = LayoutInflater.from(getContext()).inflate(resourceId,parent,false);
        ImageView imageView = (ImageView)view.findViewById(R.id.image_view);
        TextView textView = (TextView)view.findViewById(R.id.text_view);
        imageView.setImageResource(fruit.getImageId());
        textView.setText(fruit.getName());
        return view;
    }
}

在MainActivity里

	 private List<Fruit> fruitList = new ArrayList<Fruit>();
	initFruitList();
        FruitAdapter adapter = new FruitAdapter(MainActivity.this,R.layout.list_item,fruitList);
        ListView listView = (ListView)findViewById(R.id.list_view);
        listView.setAdapter(adapter);
2、给ListView的item添加事件

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Fruit fruit = fruitList.get(i);//获得点击的Fruit实例
                Toast.makeText(MainActivity.this,fruit.getName(),Toast.LENGTH_SHORT).show();
            }
        });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值