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.}
浙公网安备 33010602011771号