安卓開發_淺談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 }

 

效果圖:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM