SimpleAdapter作为一个数据集,主要向ListView、GridView容器填充数据,总结了几种填充方式,原理很简单,直接看代码和效果图


1、 ListView单行显示(simple_list_item_1)

代码:

public class myListItem1 extends Activity{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);ListView listView = new ListView(this);List<Map<String, String>> mList = new ArrayList<Map<String, String>>();for(int i=0; i<10; i++){Map<String, String> map = new HashMap<String, String>();map.put("TITLE", "Test Title");map.put("CONTENT", "Test Content");mList.add(map);}SimpleAdapter adapter = new SimpleAdapter(this,mList,android.R.layout.simple_list_item_1,// List 显示一行item1new String[]{ "CONTENT" },// "TITLE", new int[]{ android.R.id.text1 });listView.setAdapter(adapter);setContentView(listView);}}

效果:



2、 ListView双行显示(simple_list_item_2)

代码:

public class myListItem2 extends Activity{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);ListView listView = new ListView(this);List<Map<String, String>> mList = new ArrayList<Map<String, String>>();for(int i=0; i<10; i++){Map<String, String> map = new HashMap<String, String>();map.put("TITLE", "Test Title");map.put("CONTENT", "Test Content");mList.add(map);}SimpleAdapter adapter = new SimpleAdapter(this,mList,android.R.layout.simple_list_item_2,// List 显示两行item1、item2new String[]{ "TITLE", "CONTENT" },new int[]{ android.R.id.text1, android.R.id.text2 });listView.setAdapter(adapter);setContentView(listView);}}

效果:


3、 ListView自定义显示

代码:

public class MyList extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.mylist);List<Map<String, Object>> mList = new ArrayList<Map<String, Object>>();for (int i = 0; i < 10; i++) {Map<String, Object> map = new HashMap<String, Object>();map.put("PIC", R.drawable.pic);// 加载图片资源map.put("TITLE", "Test Title");map.put("CONTENT", "Test Content");mList.add(map);}SimpleAdapter adapter = new SimpleAdapter(this,mList,R.layout.listitem,// 自定义布局格式new String[] { "PIC", "TITLE", "CONTENT" }, new int[] { R.id.listitem_pic, R.id.listitem_title, R.id.listitem_content });ListView listView = (ListView) findViewById(R.id.list);listView.setAdapter(adapter);}}
自定义的 listitem.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:layout_width="fill_parent"         android:layout_height="?android:attr/listPreferredItemHeight">                <ImageView android:id="@+id/listitem_pic"                android:layout_width="wrap_content"                 android:layout_height="fill_parent"                android:layout_alignParentTop="true"                 android:layout_alignParentBottom="true"                android:adjustViewBounds="true"                android:padding="10dip" />                <TextView android:id="@+id/listitem_title"                android:layout_width="wrap_content"                 android:layout_height="wrap_content"                android:layout_toRightOf="@id/listitem_pic"                android:layout_alignParentRight="true"                 android:layout_alignParentTop="true"                android:layout_alignWithParentIfMissing="true"                 android:gravity="center_vertical"                android:textSize="22sp" />                <TextView android:id="@+id/listitem_content"                android:layout_width="fill_parent"                 android:layout_height="wrap_content"                android:layout_toRightOf="@id/listitem_pic"                android:layout_alignParentBottom="true"                android:layout_alignParentRight="true"                 android:layout_below="@id/listitem_title"                android:singleLine="true"                android:ellipsize="marquee"                 android:textSize="14sp" /></RelativeLayout>

效果:



4、 GridView自定义显示

代码:

public class MyGrid extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.mygrid);List<Map<String, Object>> mList = new ArrayList<Map<String, Object>>();for (int i = 0; i < 10; i++) {Map<String, Object> map = new HashMap<String, Object>();map.put("PIC", R.drawable.pic);// 加载图片资源map.put("TITLE", "Test Title");mList.add(map);}SimpleAdapter adapter = new SimpleAdapter(this,mList, R.layout.griditem,// 自定义布局格式new String[] { "PIC", "TITLE" }, new int[] { R.id.griditem_pic, R.id.griditem_title, });GridView gridView = (GridView) findViewById(R.id.grid);gridView.setAdapter(adapter);}}
自定义的 gridview.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_height="fill_parent" android:layout_width="fill_parent"android:orientation="vertical"><ImageView android:id="@+id/griditem_pic"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_gravity="center_horizontal"></ImageView><TextView android:id="@+id/griditem_title"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_gravity="center_horizontal"></TextView></LinearLayout>

效果:




源码下载


更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android(安卓)Audio代码分析9 - AudioTrack::write函数
  3. Android常用代码集合
  4. Android:控件anim动画效果xml文件属性值含义
  5. Android自定义Dialog没有按设置的宽度显示的问题
  6. Android(安卓)Activity之间跳转与传值
  7. Android(安卓)Media Scanner工作流程及原理
  8. android 屏幕适配的总结,适合面试
  9. Android(安卓)Context getSystemService分析

随机推荐

  1. if语句的用法是什么
  2. c语言源程序结构是怎样的?
  3. c语言编译后生成什么文件
  4. c语言如何实现玫瑰花
  5. 用c语言编写的代码程序是什么?
  6. c语言用什么软件编写?
  7. C语言如何编程生日快乐代码
  8. char数组如何转string
  9. C程序的完整开发过程包括哪几步
  10. c++ vector用法是什么