SimpleAdapter的应用

来源:互联网 发布:表单数据 编辑:程序博客网 时间:2024/06/06 08:33

SimpleAdapter

SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)参数context:上下文,比如this。关联SimpleAdapter运行的视图上下文参数data:Map列表,列表要显示的数据,这部分需要自己实现,如例子中的getData(),类型要与上面的一致,每条项目要与from中指定条目一致参数resource:ListView单项布局文件的Id,这个布局就是你自定义的布局了,你想显示什么样子的布局都在这个布局中。这个布局中必须包括了to中定义的控件id参数 from:一个被添加到Map上关联每一个项目列名称的列表,数组里面是列名称参数 to:是一个int数组,数组里面的id是自定义布局中各个控件的id,需要与上面的from对应

备注:SimpleAdapter可以使用自定义的ListView,然后setContentView即可。也可以直接使用系统自带的ListAcitivity,该ListActivity实现了ListView,显示ListView的时候做了很多优化。

MainActivity.java

package com.example.sqiist;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.content.Context;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.widget.ImageView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;public class MainActivity extends ActionBarActivity {    //声明一个listView,并初始化    private List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();    private ListView myListView;    private ImageView myImageView;    private TextView myTextView;    private Context context;    //声明一个TextView数据的数组    private String [] text_number = {"1","2","3","4"};    //声明一个Button数据的数组    private String [] btn_title={"1","2","3","4"};    //声明一个image地址的数组    private int [] image_int = {R.drawable.ic_tiem,android.R.drawable.ic_menu_delete,android.R.drawable.ic_menu_edit,android.R.drawable.ic_menu_view};    @Override    protected void onCreate(Bundle savedInstanceState) {        //复写Oncreat方法        super.onCreate(savedInstanceState);        //绑定布局文件Activity_main        setContentView(R.layout.activity_main);        context = MainActivity.this;//初始化context        myListView = (ListView)findViewById(R.id.myListView);//获取listView控件        //规定从哪里来        String [] from = {"text_number","btn_title","image_int"};        //规定到哪里去,并且与from对应        int [] to = {R.id.myTextView,R.id.myButton,R.id.myImageView};        //创建SimpleAdapter,并填入数据        SimpleAdapter listItemAdapter = new SimpleAdapter(context,getDatas(),R.layout.other,from,to);        //绑定ListItemAdapter        myListView.setAdapter(listItemAdapter);    }    //创建getDatas方法得到单一listview的布局    public List<Map<String,Object>> getDatas(){    //for循环得每个list        for(int i = 0;i < 4;i++){            HashMap<String,Object> map = new HashMap<String,Object>();            map.put("text_number","1");            map.put("btn_title", "1");            map.put("image_int", image_int[i]);            list.add(map);        }        //返回list        return list;    }}

Activity_main.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"    android:orientation="vertical" ><ListView     android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:id="@+id/myListView"    ></ListView></LinrLayout>

activity_main.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"    android:orientation="vertical" ><ListView     android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:id="@+id/myListView"    ></ListView></LinearLayout>

other.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"    android:orientation="horizontal" ><ImageView     android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/myImageView"    />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical" >        <TextView             android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:id="@+id/myTextView"            />        <Button             android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:id="@+id/myButton"            />    </LinearLayout></LinearLayout>

其中添加imageView中的图片:
1.下载图片
2.更改图片格式png
3.点击图片移动到res.drawable中任意一个
4.引用地址R.drawable.ic_item(ic_item是图片名称)

0 0
原创粉丝点击