用户界面之ListView(列表视图)

Focus on technology, enjoy life!—— QQ:804212028 浏览链接:

主题:用户界面之ListView(列表视图) -ListView和TextView,Button等控件一样,一样的定义方式。但是Android开发中说道ListView就不得不说Adapter适配器,因为只有通过Adapter才可以把列表中的数据映射到ListView中。

创建一个ListView需要3个元素

(1)ListView中的每一列的View。 (2)填入View的数据或者图片等。 (3)连接数据与ListView的适配器。

常用适配器

Adapter 含义

ArrayAdapter 用来绑定一个数组,支持泛型操作

SimpleAdapter 用来绑定在xml中定义的控件对应的数据

SimpleCursorAdapter 用来绑定游标得到的数据

BaseAdapter 通用的基础适配器

ListView结合ArrayAdapter适配器使用

activity_main.xml源代码:

==”fill_parent”android:layout_height=”fill_parent”>=”fill_parent”android:layout_height=”wrap_content”/></LinearLayout>

MainActivity.java源代码:

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;{private ListView listView;String[] str= new String[]{“aa”,”bb”,”cc”,”dd”,”ee”};(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView)findViewById(R.id.listView);ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);;//上面android.R.layout.simple_list_item_1是系统自带的一种ListView布局方式listView.setAdapter(adapter);listView.setOnItemClickListener(new OnItemClickListener(){(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, “你点击的是”+arg2, Toast.LENGTH_LONG).show();}});}}

运行结果:

ListView结合SimpleAdapter适配器使用

难道我们只满足在列表中只展示几个文字吗?我们向更加漂亮点,我们想在列表中加入图片。这时候使用SimpleAdapter的时候到了。SimpleAdapter的使用也非常简单,同时它的功能也非常强大。可以通过它自定义ListView中的item(item就是列表每一行的显示)的内容,比如图片、多选框等。看一个例子,实现一个每一行都有一个ImageView和TextView的ListView。

activity_main.xml源代码:

==”fill_parent”android:layout_height=”fill_parent”>=”fill_parent”android:layout_height=”wrap_content”/></LinearLayout>

定义一个item的显示布局,,也就是列表每一行怎么显示,来看源代码 item.xml源代码:

==”fill_parent”><ImageView=”wrap_content”android:layout_height=”wrap_content” /><TextView==”20sp”/><TextView==”@+id/ItemTitle”/> </RelativeLayout>

MainActivity.java源代码:

import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;{private ListView listView;private String[] mListTitle = { “姓名”, “性别”, “年龄”, “居住地”,”邮箱”};private String[] mListStr = { “aa”,”bb”,”cc”,”dd”,”ee” };ArrayList<HashMap<String, Object>> itemData = new ArrayList<HashMap<String,Object>>();(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView)findViewById(R.id.listView);for(int i=0;i<mListTitle.length;i++){HashMap<String,Object> item = new HashMap<String,Object>();item.put(“image”, R.drawable.myimage);item.put(“title”, mListTitle[i]);item.put(“text”, mListStr[i]);itemData.add(item);}SimpleAdapter adapter = new SimpleAdapter(this, itemData, R.layout.item, new String[] {“image”,”title”, “text”}, new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText});listView.setAdapter(adapter);listView.setOnItemClickListener(new OnItemClickListener(){(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, “你点击的是”+arg2, Toast.LENGTH_LONG).show();}});}}

运行结果:

ListView结合BaseAdapter适配器使用

知已知彼,百战百胜。

用户界面之ListView(列表视图)

相关文章:

你感兴趣的文章:

标签云: