Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android SimpleAdapter显示ListView、GridView

Android SimpleAdapter显示ListView、GridView

作者头像
阳光岛主
发布于 2019-02-19 09:15:54
发布于 2019-02-19 09:15:54
66300
代码可运行
举报
文章被收录于专栏:米扑专栏米扑专栏
运行总次数:0
代码可运行

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

1、 ListView单行显示(simple_list_item_1)

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class myListItem1 extends Activity{
	@Override
	public 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 显示一行item1
										new String[]{ "CONTENT" },			// "TITLE", 
										new int[]{ android.R.id.text1 }
										);
		
		listView.setAdapter(adapter);
		setContentView(listView);
	}
}

效果:

2、 ListView双行显示(simple_list_item_2)

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class myListItem2 extends Activity{
	@Override
	public 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、item2
										new String[]{ "TITLE", "CONTENT" },
										new int[]{ android.R.id.text1, android.R.id.text2 }
										);
		
		listView.setAdapter(adapter);
		setContentView(listView);
	}
}

效果:

3、 ListView自定义显示

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyList extends Activity {
	@Override
	public 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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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自定义显示

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyGrid extends Activity {
	@Override
	public 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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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>

效果:

源码下载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012年03月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验