列表视图(ListView)以垂直的形式列出需要显示的列表项。
实现过程:新建适配器->添加数据源到适配器->视图加载适配器
在安卓中,有两种方法可以在屏幕中添加列表视图
1、直接用ListView组件创建
2、让Activity继承ListActivity实现
一、xml文件方式创建列表
布局文件代码
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7 <ListView
8 android:id="@+id/listView1"
9 android:entries="@array/list"
10 //在res/layout 的string.xml中添加数组资源的名称
11 android:layout_width="match_parent"
12 android:layout_height="wrap_content" >
13 </ListView>
14
15 </LinearLayout>
16
相应的res/layout 中 数组资源
1 <resources>
2
3 <string name="app_name">xqx_lianxi</string>
4 <string-array name = "list"> /数组资源名称为list 与layout中对应
5 <item>山东大学</item>
6 <item>山东科技大学</item>
7 <item>山东理工大学</item>
8 <item>山东建筑大学</item>
9 <item>山东农业大学</item>
10 <item>济南大学</item>
11 <item>烟台大学</item>
12 <item>鲁东大学</item>
13 <item>临沂大学</item>
14 <item>聊城大学</item>
15 </string-array>
16 </resources>
java代码
1 package xqx;
2
3 import com.example.xqx_lianxi.R;
4
5 import android.app.Activity;
6 import android.os.Bundle;
7 import android.view.View;
8 import android.widget.AdapterView;
9 import android.widget.Toast;
10 import android.widget.AdapterView.OnItemClickListener;
11 import android.widget.ListView;
12
13 public class List_lianxi extends Activity{
14 ListView list;
15 @Override
16 protected void onCreate(Bundle savedInstanceState) {
17 // TODO Auto-generated method stub
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.list_lianxi);
20
21 list = (ListView) findViewById(R.id.listView1);
22
23 //为列表视图中选中的项添加响应事件
24 list.setOnItemClickListener(new OnItemClickListener() {
25
26 @Override
27 public void onItemClick(AdapterView<?> parent, View arg1, int pos,
28 long id) {
29 // TODO Auto-generated method stub
30 String result = parent.getItemAtPosition(pos).toString(); //获取选择项的值
31 Toast.makeText(List_lianxi.this, "点击了 "+result, Toast.LENGTH_SHORT).show();//输出选中项消息
32 }
33 });
34 }
35
36 }
效果图:
二、java代码动态创建列表
1、布局文件
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7 <ListView
8 android:id="@+id/id_listview"
9 android:layout_width="match_parent"
10 android:layout_height="wrap_content" > //这里就不用指定数据源了
11 </ListView>
12
13 </LinearLayout>
2、Acitivity代码
1 package price_ui;
2
3 import com.example.allcode.R;
4
5 import android.app.Activity;
6 import android.os.Bundle;
7 import android.view.View;
8 import android.widget.AdapterView;
9 import android.widget.AdapterView.OnItemClickListener;
10 import android.widget.ArrayAdapter;
11 import android.widget.ListView;
12 import android.widget.SimpleAdapter;
13 import android.widget.Toast;
14
15 public class ListView_test extends Activity{
16 private ListView list;
17 private ArrayAdapter<String> arrayadapter;
18 private SimpleAdapter simpleadapter;
19
20 @Override
21 protected void onCreate(Bundle savedInstanceState) {
22 // TODO Auto-generated method stub
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.listview_text);
25
26 list = (ListView) findViewById(R.id.id_listview);
27 String schools[] = {"山东大学","山东理工大学","山东科技大学","山东农业大学"};
28 //新建适配器,适配器加载数据源
29 //第一个参数:上下文
30 //第二个参数:当前列表项加载的布局文件
31 //第三个参数:数据源
32
33 arrayadapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, schools);
34
35 //ListView视图加载适配器
36 list.setAdapter(arrayadapter);
37
38 //为列表视图中选中的项添加响应事件
39 list.setOnItemClickListener(new OnItemClickListener() {
40
41
42
43 @Override
44 public void onItemClick(AdapterView<?> parent, View arg1, int pos,
45 long id) {
46 // TODO Auto-generated method stub
47 String result = parent.getItemAtPosition(pos).toString(); //获取选择项的值
48 Toast.makeText(ListView_test.this, "点击了 "+result, Toast.LENGTH_SHORT).show();//输出选中项消息
49 }
50 });
51 }
52
53 }