【Android】ListView的使用

ListView 的實現步驟

  1. 新建數據適配器
  2. 適配器加載數據源
  3. ListView加載適配器
  4. 爲每一個Item添加點擊事件

適配器分兩種:ListAdapter 和SimpleAdapter

案例一:(使用ListAdapter實現ListView(只包含文字哦))
貌似要先來張照片(這次把圖片整小點吧)
這裏寫圖片描述

佈局文件中添加:

<ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/main_lv">
</ListView>

Activity中

private ListView mListView;
private ArrayAdapter<String> mArrayAdapter;
mListView=(ListView)findViewById(R.id.main_lv);
//1.新建數據適配器
String[] arr={"《上邪》",
         "Tony-Chen",
         "上邪,",
         " 我欲與君相知,",
         " 長命無絕衰.",
         " 山無陵,",
         " 江水爲竭.",
         " 冬雷震震,",
         " 夏雨雪.",
         " 天地合,",
         " 乃敢與君絕."};

//ArrayAdapter(context,當前ListView加載的每一個列表項對應的佈局文件,數據源)

//2.適配器加載數據源
mArrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr);
//3.ListView 加載適配器
mListView.setAdapter(mArrayAdapter);

案例一:(使用SimpleAdapter實現ListView(包含圖片和文字))

先看看效果:
這裏寫圖片描述

main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.mylistview.MainActivity">
        <ListView
            android:id="@+id/main_lv"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="?attr/colorControlHighlight">
        </ListView>

    <!--懸浮按鈕-->
    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:onClick="fabClick"
        app:backgroundTint="@android:color/holo_blue_dark"
        app:srcCompat="@mipmap/icon_serch" />

</android.support.design.widget.CoordinatorLayout>

listview_content.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_vertical"
    android:orientation="horizontal">

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/image"
        android:layout_marginLeft="20dp"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/image_text"
        android:padding="10dp"
        android:textSize="20sp"
        android:textStyle="bold"
        android:textColor="#FF0F00"/>

    </LinearLayout>

activity

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //懸浮按鈕
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        String[] arr = new String[]{"《上邪》",
                "Tony-Chen",
                "上邪,",
                " 我欲與君相知,",
                " 長命無絕衰.",
                " 山無陵,",
                " 江水爲竭.",
                " 冬雷震震,",
                " 夏雨雪.",
                " 天地合,",
                " 乃敢與君絕."};
        ListAdapter mAdapter=new MyAdapter(this,arr);
        ListView lv=(ListView) findViewById(R.id.main_lv);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l)
            {
                if(i==0)
                {
                        Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                                .setAction("Action", null).show();
                }
            }
        });

        lv.setAdapter(mAdapter);
    }
    class MyAdapter extends ArrayAdapter<String>{
        public MyAdapter(Context context, String[] values) {
            super(context, R.layout.listview_content, values);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {
            LayoutInflater inflater=LayoutInflater.from(getContext());
            View view = inflater.inflate(R.layout.listview_content, parent, false);
            String text=getItem(position);
            TextView textview=(TextView) view.findViewById(R.id.image_text);
            textview.setText(text);
            ImageView imageview=(ImageView) view.findViewById(R.id.image);
            imageview.setImageResource(android.R.drawable.ic_menu_info_details);
            if("最".equals(text))
                imageview.setImageResource(android.R.drawable.ic_menu_add);

            return view;
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章