安卓开发_浅谈ListView(ArrayAdapter数组适配器)

列表视图(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 }

 

效果图:

安卓开发_浅谈ListView(ArrayAdapter数组适配器)

二、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 }

 

你可能感兴趣的:(ArrayAdapter)