ListView 搭配SimpleAdapter
Posted 麦哈顿博士
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ListView 搭配SimpleAdapter相关的知识,希望对你有一定的参考价值。
这是SimplerAdapter的构造函数
public SimpleAdapter(Context context, List<? extends Map<String, ?>> data, @LayoutRes int resource, String[] from, @IdRes int[] to) { mData = data; mResource = mDropDownResource = resource; mFrom = from; mTo = to; mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); }
from A list of column names that will be added to the Map associated with each
* item.
to The views that should display column in the "from" parameter. These should all be
* TextViews. The first N views in this list are given the values of the first N columns
* in the from parameter.
context:是上下文;
List<? extends Map<String, ?>> data:这里是listview的数据来源,最外层是一个list数据结构list泛型指定的是继承了Map的对象。这里我们准备使用ArrayList<HashMap<String,String>>;
resource:这是listview的布局文件注意着是@LayoutRes那么就应该是R.layout里的xml文件
from:看注释这里是指定数据源中Map的column的名字,也就是说是指定Map<key,value>中key;是我们添加数据的索引。
to:这是需要显示的TextView(这里必须是TextView)的id,对应的是Map<key,value>中value,将是我们可见的内容。
那么ListView的布局如下:hashmap_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/hash_title"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/hash_aticle"/> </LinearLayout>
主要代码如下
private ArrayList<HashMap<String,String>> item; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.my_listview); DataInit(); SimpleAdapter sa = new SimpleAdapter(this,item,R.layout.hashmap_item,new String[]{"title","article"},new int[]{R.id.hash_title,R.id.hash_aticle}); listView.setAdapter(sa); } private void DataInit(){ item = new ArrayList<>(20); for(int i=0;i<30;i++){ HashMap<String,String> hashmap = new HashMap<>(); hashmap.put("title","title:"+i); hashmap.put("article","article:"+i); item.add(hashmap); } }
以上是关于ListView 搭配SimpleAdapter的主要内容,如果未能解决你的问题,请参考以下文章
使用 SimpleAdapter 访问 listView 的视图
ListView / SimpleAdapter 不刷新 - Android
AndroidStudio中ListView的使用方法之SimpleAdapter适配器
AndroidStudio中ListView的使用方法之SimpleAdapter适配器