LianNancy

Android 列表对话框

第一步:

首先将列表对话框列表项中的字符数据(篮球、足球和排球)放在res/values/array.xml中

view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="utf-8"?> 
02.<resources> 
03.    <string-array name="hobby"> 
04.        <item>篮球</item> 
05.        <item>足球</item> 
06.        <item>排球</item> 
07.    </string-array> 
08.</resources> 
<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string-array name="hobby">
  <item>篮球</item>
  <item>足球</item>
  <item>排球</item>
 </string-array>
</resources>
 

第二步:

在res/layout/list_dialog_layout.xml里定义一个输入框和一个按钮

view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="utf-8"?> 
02.<LinearLayout 
03.  xmlns:android="http://schemas.android.com/apk/res/android
04.  android:orientation="vertical" 
05.  android:layout_width="fill_parent" 
06.  android:layout_height="wrap_content"> 
07.  <EditText android:id="@+id/editText" 
08.    android:layout_width="fill_parent" 
09.    android:layout_height="wrap_content" 
10.    android:text="这是一个列表对话框Demo"/> 
11.  <Button android:id="@+id/button"   
12.    android:layout_width="fill_parent" 
13.    android:layout_height="wrap_content" 
14.    android:text="显示列表对话框 " 
15.    /> 
16.</LinearLayout> 
<?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">
  <EditText android:id="@+id/editText"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="这是一个列表对话框Demo"/>
  <Button android:id="@+id/button"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="显示列表对话框 "
   />
</LinearLayout>
 

 第三步:

 产生对话框,需要AlertDialog.Builder作为载体,也就是说AlertDialog.Builder来充当内容部分的载体

 对于列表对话框来说使用setItems,将array.xml中的数据关联到buidler里面

 
view plaincopy to clipboardprint?
01.builder.setItems(R.array.hobby, listener); 
builder.setItems(R.array.hobby, listener);

 定义一个监听器监听列表项中的单击事件

 
view plaincopy to clipboardprint?
01.DialogInterface.OnClickListener listener =   
02.    new DialogInterface.OnClickListener() {  
03.          
04.        @Override 
05.        public void onClick(DialogInterface dialogInterface, int which) {  
06.            EditText editText = (EditText) findViewById(R.id.editText);  
07.            editText.setText("你选择了: " +  
08.                getResources().getStringArray(R.array.hobby)[which]);  
09.    }  
10.}; 
DialogInterface.OnClickListener listener =
 new DialogInterface.OnClickListener() {
  
  @Override
  public void onClick(DialogInterface dialogInterface, int which) {
   EditText editText = (EditText) findViewById(R.id.editText);
   editText.setText("你选择了: " +
    getResources().getStringArray(R.array.hobby)[which]);
 }
};

 关于整个ListDialogActivity代码如下:

 
view plaincopy to clipboardprint?
01.package com.mylistdialog.activity;  
02. 
03.import android.app.Activity;  
04.import android.app.AlertDialog;  
05.import android.app.Dialog;  
06.import android.app.AlertDialog.Builder;  
07.import android.content.DialogInterface;  
08.import android.os.Bundle;  
09.import android.view.View;  
10.import android.widget.Button;  
11.import android.widget.EditText;  
12. 
13./** 
14. * @author jamesliu 
15. */ 
16.public class ListDialogActivity extends Activity {  
17. 
18.    private final int LISTDIALOG = 1;  
19.    @Override 
20.    public void onCreate(Bundle savedInstanceState) {  
21.        super.onCreate(savedInstanceState);  
22.        setContentView(R.layout.list_dialog_layout);  
23.        Button button = (Button) findViewById(R.id.button);  
24.        View.OnClickListener listener = new View.OnClickListener() {  
25.            @Override 
26.            public void onClick(View view) {  
27.                 showDialog(LISTDIALOG);  
28.            }  
29.        };  
30.          
31.        button.setOnClickListener(listener);  
32.    }  
33.      
34.    @Override 
35.    protected Dialog onCreateDialog(int id) {  
36.        Dialog dialog = null;  
37.        switch(id) {  
38.            case LISTDIALOG:  
39.                Builder builder = new AlertDialog.Builder(this);  
40.                builder.setTitle("列表对话框");  
41.                builder.setIcon(R.drawable.dialog);  
42.                DialogInterface.OnClickListener listener =   
43.                    new DialogInterface.OnClickListener() {  
44.                          
45.                        @Override 
46.                        public void onClick(DialogInterface dialogInterface,   
47.                                int which) {  
48.                            EditText editText =   
49.                                (EditText) findViewById(R.id.editText);  
50.                            editText.setText("你选择了: " +getResources()  
51.                                    .getStringArray(R.array.hobby)[which]);  
52.                        }  
53.                    };  
54.                builder.setItems(R.array.hobby, listener);  
55.                dialog = builder.create();  
56.                break;  
57.        }  
58.        return dialog;  
59.    }  
60.} 

posted on 2011-05-20 15:41  深圳-梦梦  阅读(2293)  评论(0)    收藏  举报

导航