Android User Interface4:ListView&移动终端软件开发课程&StudyAccount5 2018.10.16

ListView和所要展示的内容(即数据源)之间需要Adapter(适配器)来实现。
Adapter是一个桥梁,对ListView的数据进行管理,根据数据来源不同,所使用的Adapter不同。

1.常用Adapter

  • ListView在显示之前需要使用setAdapter(ListAdapter adapter)方法!
  • ListView本身是继承自ViewGroup的一种容器,它只设定摆放在它里面的View的排列规则,不设定该View是什么样的,而View是怎么样的需靠ListAdapter里面的getView方法来确定,另外我们设置的数据就是它的数据源,这样就提高了ListView显示的灵活性,只要设置不同的ListAdapter实例对象,就会生成不一样的ListView。
  • ListAdapter是一个接口,凡是实现了该接口的实例对象都可以被ListView等需要ListAdapter的View使用,ListView的实现中存在一种设计模式叫策略模式,ListView显示什么和显示的效果是根据选择ListAdapter不同的实现类这个策略来实现的,这样就让ListView的显示和数据分开了,从而ListView的显示就更加灵活。

onCreate()函数中:

        ListView listView = (ListView) findViewById(R.id.mListView);
        setListAdapter(listView);  
        

setListAdapter()函数中:

		HashMap<String, Object> map1 = new HashMap<String, Object>();//准备数据
        map1.put("data0",R.drawable.qq2);
        map1.put("data1", "Cat");
        map1.put("data2", "爱吃鱼");
        data.add(map1);
        HashMap<String, Object> map2 = new HashMap<String, Object>();
        map2.put("data0",R.drawable.qq3);
        map2.put("data1", "Fox");
        map2.put("data2", "天生我材必有用");
        data.add(map2);
        SimpleAdapter simpleAdapter = new SimpleAdapter(this,data,//准备数据适配器
                R.layout.listview_qq,
                new String[]{"data0","data1","data2"},//对应HashMap中的Key
                new int[]{R.id.qq_image,R.id.qq_name,R.id.qq_text});
        listView.setAdapter(simpleAdapter);//装载到listView中

2.自定义Adapter

(1)实现ListAdapter接口,因为BaseAdapter部分实现了ListAdapter,所以直接继承自BaseAdapter就可以了。
(2)BaseAdapter是抽象类,那么复写里面的抽象方法就可达到一般要求了。
(3)复写完成后在setAdapter中传入写好的Adapter类的实例对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值