Listview详解一(ArrayAdapter)

1.Adapter基本介绍(一)

    1.1 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI之间的一个重要的纽带。常见的View(ListView  GridView)等地方都需要用到Adapter,比较常见的适配器有BaseAdapter、SimpleAdapter、SimpleCursorAdapter、ArrayAdapter(支持泛型操作,最为简单)等。

    1.2 列表的显示需要三个元素:
      1.listview:用来展示的view  
      2.适配器:用来把数据展示在view中的中介
      3.数据:具体被展示的字符串、图片或基本的组件

案例一

Listview详解一(ArrayAdapter)_第1张图片

ListView布局

">http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    "
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

TextView布局


<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
TextView>
 //将字符串数组添加到listview中
 arrayAdapter1();
  /**
     * 将字符串数组添加到listview中
     */
    private void arrayAdapter1() {
        //初始化listview
        listView = (ListView) findViewById(R.id.list);
        //创建字符串数组
        String[] str = {"1", "2", "3", "4", "5", "6", "7"};
        //创建适配器
        // 参数1:当前activity
        // 参数2:每一条数据的布局是这个view 就是将每一条数据显示在listview中,如果自己不创建,系统默认为android.R.layout.simple_expandable_list_item_1;如果自己创建xml类型必须是TextView
        // 参数3:数组
        strAdapter = new ArrayAdapter<>(this, R.layout.item, str);
        //将adapter绑定到listview中
        listView.setAdapter(strAdapter);
    }

案例二

Listview详解一(ArrayAdapter)_第2张图片

   //将集合添加到listview中
   arrayAdapter2();
    //将集合添加到listview中 
    private void arrayAdapter2() {
        //初始化listview
        listView = (ListView) findViewById(R.id.list);
        getData();
        //创建适配器,并绑定listview中
        listView.setAdapter(new ArrayAdapter<String>(this, R.layout.item, getData()));

    }

    private ArrayList<String> getData() {
        //创建集合
        ArrayList<String> list = new ArrayList<>();
        //往集合中添加数据
        list.add("第一行item");
        list.add("第二行item");
        list.add("第三行item");
        list.add("第四行item");
        list.add("第五行item");
        return list;

    }
  //ListView条目的点击事件
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            //参数1:代表当前点击的AdapterView,问号代表当前不确定java类型,是泛型
            //参数2:代表当前点击的哪一项的textview
            //参数3:代表当前点击的哪一项
            //参数4:代表当前点击的那项id
            public void onItemClick(AdapterView adapterView, View view, int i, long l) {
                //view为TextView类型,必须进行强转
                Toast.makeText(MainActivity.this, ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
            }
        });

你可能感兴趣的:(Android)