Android手机开发:ListView的使用
16lz
2021-01-26
1. 简单的列表
import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;public class ActivityList1 extends Activity {ListView listView;private String[] data = { "Android应用专业开发社区:eoeAndroid.com", "eoeAndroid出品软件如下:","eoeInstaller", "eoeDouban", "eoeWhere","eoeInfoAssistant", "eoeDakarGame","eoeTrack" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); listView = new ListView(this);listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data)); listView.setItemsCanFocus(true); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);setContentView(listView); }}
setAdapter函数将listView和ArrayAdapter进行绑定,listView会把ArrayAdapter中的数据显示出来。
2. 每一项可以包含多个View的列表
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.AdapterView.OnItemClickListener;public class ActivityList2 extends Activity {private List<Map<String, Object>> data;private ListView listView = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);PrepareData();listView = new ListView(this);// 利用系统的layout显示一项// SimpleAdapter adapter = new SimpleAdapter(this, data,// android.R.layout.simple_list_item_1, new String[] { "姓名" },// new int[] { android.R.id.text1 });// 利用系统的layout显示两项// SimpleAdapter adapter = new SimpleAdapter(this, data,// android.R.layout.simple_list_item_2, new String[] { "姓名","性别" },// new int[] { android.R.id.text1 , android.R.id.text2});// 利用自己的layout来进行显示两项SimpleAdapter adapter = new SimpleAdapter(this, data,R.layout.list_item, new String[] { "姓名", "性别" }, new int[] {R.id.mview1, R.id.mview2 });listView.setAdapter(adapter);setContentView(listView);OnItemClickListener listener = new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View view, int position,long id) {setTitle(parent.getItemAtPosition(position).toString());}};listView.setOnItemClickListener(listener);}private void PrepareData() {data = new ArrayList<Map<String, Object>>();Map<String, Object> item;item = new HashMap<String, Object>();item.put("姓名", "张三小朋友");item.put("性别", "男");data.add(item);item = new HashMap<String, Object>();item.put("姓名", "王五同学");item.put("性别", "男");data.add(item);item = new HashMap<String, Object>();item.put("姓名", "小李师傅");item.put("性别", "女");data.add(item);}}
R.layout.list_item文件内容如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="wrap_content"><TextView android:id="@+id/mview1" android:layout_width="100px"android:layout_height="wrap_content" /><TextView android:id="@+id/mview2"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout>
3. 直接继承ListActivity类的列表
import android.app.ListActivity;import android.os.Bundle;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;public class ActivityList3 extends ListActivity { private String[] data ={};public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.list3);setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data));} protected void onListItemClick(ListView listView, View v, int position, long id) { super.onListItemClick(listView, v, position, id); setTitle(listView.getItemAtPosition(position).toString()); }}
上面的data数组,存放要显示的数据。
R.layout.list3内容如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"><ListView android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <TextView android:id="@id/android:empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="对不起,没有数据显示"/> </LinearLayout>
更多相关文章
- android中使用surfaceview进行视频播放
- Android(安卓)PopupMenu显示
- JAVA按钮显示用户名+密码
- Android拍照后显示照片
- gridview显示图片
- android webview全屏显示html内容
- android 监听系统键盘显隐
- 使用DatePicker以及TimePicker显示当前日期和时间
- 使用系统API的SQLite