一起学android之SimpleAdapter使用(13)

SimpleAdapter:将List集合的多个对象包装成列表项。

我们可以通过SimpleAdapter来实现一些复杂的列表,请看以下实例:

simpleadapter_list布局文件:

<span style="font-size:18px;"><?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:id="@+id/lv_simpleadapter"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout></span>

simpleadapter布局文件:用于显示列表项的组件

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <LinearLayout
        android:id="@+id/ll_top"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:orientation="horizontal">
    <ImageView
        android:id="@+id/iv_image"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:scaleType="fitXY"
        android:src="@drawable/a5i"
        android:layout_gravity="center"/>
    <LinearLayout
        android:id="@+id/ll_right"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginTop="4dp">
        <TextView
            android:id="@+id/tv_title"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:textSize="20sp"
            android:text="AS"/>
         <TextView
            android:id="@+id/tv_des"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:textSize="13sp"
            android:text="AS"
            />
    </LinearLayout>
</LinearLayout>
</RelativeLayout></span>

SimpleAdapterTest主文件:

<span style="font-size:18px;">public class SimpleAdapterTest extends Activity {
	int[] images = new int[] { R.drawable.a5i, R.drawable.a5j, R.drawable.a5k };
	String[] titles = new String[] { "电话", "QQ", "联系人" };
	String[] des = new String[] { "当前无电话记录", "当前无QQ聊天记录", "最近无联系人" };

	private ListView lv_simple;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.simpleadapter_list);
		initView();
		setData();
	}

	private void initView() {
		lv_simple = (ListView) findViewById(R.id.lv_simpleadapter);
		lv_simple.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				Toast.makeText(SimpleAdapterTest.this, titles[position],
						Toast.LENGTH_SHORT).show();
			}
		});
	}

	private void setData() {
		// 创建数据源
		List<HashMap<String, Object>> listItems = new ArrayList<HashMap<String, Object>>();
		for (int i = 0; i < titles.length; i++) {
			// 每个列表项的内容
			HashMap<String, Object> listItem = new HashMap<String, Object>();
			listItem.put("image", images[i]);
			listItem.put("title", titles[i]);
			listItem.put("desc", des[i]);
			listItems.add(listItem);
		}
		/*
		 * SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
		 * 参数说明:
		 * context:整个应用的上下文。
		 * data:是List<? extends Map<String, ?>>的集合对象,其中每个Map<String, ?>代表每列的列表项内容。
		 * resource:界面布局文件的ID。
		 * from:String[]类型的参数,指定了Map<String, ?>中的每个key对应的value来生成列表项。
		 * to:int[]类型的参数,显示每个列表项显示的组件。
		 */
		SimpleAdapter simpleAdapter = new SimpleAdapter(SimpleAdapterTest.this,
				listItems, R.layout.simpleadapter, new String[] { "image",
						"title", "desc" }, new int[] { R.id.iv_image,
						R.id.tv_title, R.id.tv_des });

		//绑定适配器
		lv_simple.setAdapter(simpleAdapter);
	}
}</span>

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42361041  情绪控_

时间: 2024-08-01 09:53:10

一起学android之SimpleAdapter使用(13)的相关文章

菜鸟学Android编程——简单计算器《一》

菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少,加减乘除就可以. 第一步:设计布局文件 界面如下图: 由于刚开始学Android,对布局文件也不是很了解,边查边找,最后凑合着写好了布局文件. 注意事项:此布局文件用到了GridLayout布局,是在Android4.0以上才出现的(不知道谷歌有没有开发相应的包来适配4.0以下版本). 有关Gri

学Android开发 这19个开发工具助你顺风顺水

学Android开发 这19个开发工具助你顺风顺水 要想快速开发一个Android应用,通常会用到很多工具,巧妙利用这些工具,能让我们的开发工作事半功倍,节省大量时间,下面大连Android开发培训小编就为大家介绍下这19个开发工具都有神马用途. 1.XAppDbg XAppDbg是一个可以在运行中改变代码中参数的一个应用开发工具.这个工具可以为你省下大量的时间,因为你不用为应用的每次小改变而重新编译运行你的程序. 2.ChkBugReport 这个工具可以快速地检查输出的Android错误报告

【视频】零基础学Android开发:蓝牙聊天室APP(三)

零基础学Android开发:蓝牙聊天室APP第三讲 3.1 ImageView.ImageButton控件详解 3.2 GridView控件详解 3.3 SimpleAdapter适配器详解 3.4 事件监听器:OnItemClickListener 3.5 输入和显示表情图像 在线收看:http://www.3g-edu.org/news/video023.htm 视频下载:http://pan.baidu.com/s/1kTmiNqf

从零开始学android&lt;ListView数据列表显示组件.二十一.&gt;

与滚动视图(ScrollView)类似的还有一种列表组件(ListView),可以将多个组件加入到ListView之中以达到组件的滚动显示效果,ListView组件本身也有对应的ListView类支持,可以通过操作ListView类以完成对此组组件的操作,ListView类的继承结构如下所示: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.AdapterView<T extends a

从零开始学android&lt;Toast土司提示组件.二十.&gt;

在系统之中,通过对话框可以对用户的某些操作进行提示,但是在Android平台之中也提供了另外一套更加友好的提示界面效果,而且这种界面在提示用户的时候不会打断用户的正常操作,这种对话框可以通过Toast组件实现. Toast是一个以简单提示信息为主要显示操作的组件,在Android之中android.widget.Toast的继承结构如下所示: java.lang.Object ? android.widget.Toast 常用的方法: No. 方法及常量 类型 描述 1 public stati

一起学android之利用回调函数onCreateDialog实现加载对话框(23)

效果图: 有时候我们需要去做一个Activity启动时的数据加载对话框,关于对话框的各种实现可以通过一起学android之对话框 Dialog的创建(7)来完成,在这里另外介绍一个,利用onCreateDialog回调方法来实现,当然这个方法标记已经过 时了,但我们还是可以使用这个方法来实现我们想要的功能.具体请参看代码: public class MainActivity extends Activity { @SuppressWarnings("deprecation") @Ove

从零开始学android&lt;android事件的处理方式.二十四.&gt;

在android中一共有 多种事件,每种事件都有自己相对应的处理机制 如以下几种 1 单击事件 View.OnClickListener public abstract void onClick (View v) 单击组件时触发 2 单击事件 View.OnLongClickListener public abstract boolean onLongClick (View v) 长按组件时触发 3 键盘事件 View.OnKeyListener public abstract boolean

从零开始学android&lt;RatingBar评分组件.二十三.&gt;

如果现在用户要对某个应用程序打分往往会使用图所示的组件,通过选择的"五角星"的个数来决定最终的打分成绩 这样的功能在Android之中,可以使用RatingBar组件实现,使用此组件可以方便用户的输入,而且很直观,RatingBar类的定义结构如下: java.lang.Object ? android.view.View ? android.widget.ProgressBar ? android.widget.AbsSeekBar ? android.widget.RatingBa

从零开始学android&lt;AutoCompleteTextView随笔提示文本框.十九.&gt;

随笔提示功能可以很好的帮助用户进行方便的信息输入,而在Android之中也提供了与之类似的功能,而这个功能的实现就需要依靠android.widget.AutoCompleteTextView类完成,此类的继承结构如下: java.lang.Object ? android.view.View ? android.widget.TextView ? android.widget.EditText ? android.widget.AutoCompleteTextView No. 方法 类型 描述