Adapter适配器

时间:2023-03-09 06:00:11
Adapter适配器

1.概念

*连接后端数据和前端显示的适配器接口

*数据和UI之间的重要连接
2. ArrayAdapter
 ArrayAdapter构造器如下:
ArrayAdapter(Context context, int textViewResoureId, T[] objects)
ArrayAdapter(Context context, int textViewResourceId, List<T> objects)

参数分别是:上下文、控件视图、数据

例:

         list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, list);
        listview = (ListView) findViewById(R.id.listview);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                listview.setAdapter(adapter);

            }
        });

3. SimpleAdapter

SimpleAdapter中每行可以显示多个控件的组合
SimpleAdapter构造器如下:
   SimpleAdapter(Context context,
                List<? extends Map<String, ?>> data,
                int resource,
                String[] from,
                int[] to)

参数分别是:上下文、数据、控件布局、数据的key、布局中控件的id

例:

        data = new ArrayList<Map<String, Object>>();
        Map<String, Object> map1 = new HashMap<String, Object>();
        map1.put("姓名", "超人");
        map1.put("技能", "飞");
        data.add(map1);
        Map<String, Object> map2 = new HashMap<String, Object>();
        map2.put("姓名", "蝙蝠侠");
        map2.put("技能", "跑");
        data.add(map2);
        String[] from = new String[]{"姓名","技能"};
        int[] to = new int[]{android.R.id.text1,android.R.id.text2};
        adapter = new SimpleAdapter(MainActivity.this, data, android.R.layout.simple_list_item_2, from, to);
        listview = (ListView) findViewById(R.id.listview);
        listview.setAdapter(adapter);

4.方法顺序

创建List数据->实例化Adapter->设置ListView中显示的数据