ListView学习(二)

来源:互联网 发布:2016十大网络用语作文 编辑:程序博客网 时间:2024/05/16 09:26

在ListView学习(一)中,使用的适配器是是ArrayAdapter,接下来我们改换成SimpleAdapter适配器,并且每一个列表项都显示一张图片和文字

最后实现的结果如下图所示:



说明一下实现的步骤:

1、新建布局文件item.xml

2、新建适配器SimpleAdapter,并引入该布局文件

3、为适配器传入需要的数据(具体在代码中说明)

4、加载适配器,显示出来


新建布局文件item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ImageView        android:id="@+id/image"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@mipmap/ic_launcher"/>    <TextView        android:id="@+id/text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/></LinearLayout>

MainActivity的文件代码

package com.example.administrator.lis;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.SimpleAdapter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity {    private ListView listView;    private SimpleAdapter adapter_simple;    private List<Map<String,Object>> data = new ArrayList<Map<String,Object>>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView = (ListView)findViewById(R.id.listview);                //参数说明见下图        adapter_simple = new SimpleAdapter(this, getData(), R.layout.item, new String []{"image","text"}, new int[]{R.id.image,R.id.text});        listView.setAdapter(adapter_simple);    }    public List<Map<String,Object>> getData(){        for (int i=0; i<20; i++){            Map<String, Object> map = new HashMap<String, Object>();            map.put("image",R.mipmap.ic_launcher);            map.put("text",""+i);            data.add(map);        }        return data;    }}

参数说明:

第一个context参数,上下文,这里使用this即可

第二个data参数,是一个数据源,由Map组成的List集合,

每一个Map都会对应listView的每一行,

每一个Map(键-值对)必须包含所有from参数里面指定的键

第三个参数resource,是布局文件对应的id

第四个参数from是Map中的键名

第五个参数to是布局文件中每一个控件的id,与from成对应关系




activity_main代码

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.administrator.lis.MainActivity">    <ListView        android:id="@+id/listview"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Hello World!" /></LinearLayout>





0 0
原创粉丝点击