ListView(ArrayAdapter数组适配器)

在安卓中,有两种方法可以在屏幕中添加列表视图

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 }
复制代码

 

效果图:

ListView(ArrayAdapter数组适配器)_第1张图片

二、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() {
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  }
53 }

你可能感兴趣的:(android,ListView)