`
king_tt
  • 浏览: 2115164 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android SimpleAdapter显示ListView、GridView

 
阅读更多

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


1、 ListView单行显示(simple_list_item_1)

代码:

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)

代码:

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自定义显示

代码:

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

<?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 {
	@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
<?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>

效果:




源码下载


分享到:
评论

相关推荐

    Android SimpleAdapter的多种显示GridView/ListView

    Android SimpleAdapter的多种显示GridView/ListView

    Android SimpleAdapter

    Android SimpleAdapter 列表(ListView)、表格(GridView)

    android控件ListView. GridView.gallery应用

    ListView添加数据源,SimpleAdapter 重点是ListView事件处理,OnItemClickListener 如果和上下文菜单关联,点上下文菜单去操作item项 要在OnContextItemSelected方法里面得到 AdapterMenuInfo的对象,才能得到你选择...

    基于Eclipse的 Android Adapter在ListView和GridView中的应用

    SimpleCursorAdapter:用于显示简单文本类型的listView,一般在数据库那里会用到,不过有点过时, 不推荐使用! BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!

    Android SimpleAdapter适配器使用详解

    Android的AdapterView用的比较多,ListView,GridView,Spinner等,原生的BaseAdapter对ViewHolder没有支持,每次都要,定义内部类,inflater根布局,对item内部view设置clicklistener并转发到adapter的调用者等。...

    Android中使用GridView进行应用程序UI布局的教程

    与ListView类似的是,GridView也需要通过Adapter来提供显示的数据:开发者既可通 过SimpleAdapter来为GridView提供数据,也可通过开发 BaseAdaptei的子类来为GridView 提供数据。不管使用哪种方式,GridView与...

    Android TabHost List View 使用的一个小例子

    Android TabHost ListView 使用实例

    Android基础知识详解

    使用SimpleAdapter建立复杂的列表项 97 自定义Adapter来建立复杂的列表项 99 动态添加、删除ListView列表项 102 改变ListView列表项选中状态的背景颜色 102 可展开的列表组件 102 数据的存取 103 SharePreferences ...

    Android知识点及重要代码合集 word文档

    10.2 GridView常用属性(使用参考ListView) 124 10.3 ExpandableListView的使用 124 11.1选项菜单XML文件 132 11.2菜单的分类 132 11.3 选项菜单相关方法 133 11.4 JAVA代码生成选项菜单 134 11.5上下文菜单的编写...

    浅析Android之Adapter用法总结

    在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: Android中所有的Adapter一览:  由图可以看到在Android中与Adapter有关的所有接口、类的完整层级图...

    Android--UI-新手必备源码master.zip

    包括Android布局,弹窗,配色,单击事件,UI,精美炫酷的activity切换动画和空间动画,是新手必备的源码,内含相关的Dome 25件。 - - 文件夹 PATH 列表 卷序列号为 4E8D-6931 C:. │ .txt │ Android-UI-新手必备...

    安卓开发入门基础之gridview网格布局+webview

    activity_numlock.xml 总体是垂直线性布局 里面放1个textview作为标题,1个textview作为获取密码的寄存地,1个gridview网格布局 bg_lock.xml ... private ListView listview; private ArrayList&lt;Map&gt; list;

Global site tag (gtag.js) - Google Analytics