|
最近复习和整理一下Android的知识。这次要说的是AlertDialog,这种对话框会经常遇到。AlertDialog跟WIN32开发中的Dialog不一样,AlertDialog是非阻塞的,而阻塞的对话框用的是PopupWindow。
先贴出程序运行的截图:
main.xml的源码: view plaincopy to clipboardprint?
1. < ?xml version="1.0" encoding="utf-8"?>
2. < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3. androidrientation="vertical"
4. android:layout_width="fill_parent"
5. android:layout_height="fill_parent"
6. >
7.
8. < Button android:id="@+id/Button01" android:layout_height="wrap_content" android:text="非Layout型对话框" android:layout_width="fill_parent">< /Button>
9. < Button android:id="@+id/Button02" android:layout_height="wrap_content" android:text="Layout型对话框" android:layout_width="fill_parent">< /Button>< View android:id="@+id/View01" android:layout_width="wrap_content" android:layout_height="wrap_content">< /View>
10.
11. < /LinearLayout>
复制代码下图是非Layout型对话框,直接使用AlertDialog
下图是使用了Layout的对话框,可以自定义控件,实现更复杂的对话框
dialoglayout.xml的源码: view plaincopy to clipboardprint?
1. < ?xml version="1.0" encoding="utf-8"?>
2.
3. < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
4. android:layout_width="fill_parent" android:layout_height="wrap_content"
5. android:orientation="vertical">
6. < EditText android:layout_height="wrap_content"
7. android:layout_width="fill_parent" android:layout_marginLeft="20dip"
8. android:layout_marginRight="20dip" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/edtInput"/>
9. < /LinearLayout>
复制代码程序源码: view plaincopy to clipboardprint?
1. package com.testAlertDialog;
2.
3. import android.app.Activity;
4. import android.app.AlertDialog;
5. import android.content.Context;
6. import android.content.DialogInterface;
7. import android.os.Bundle;
8. import android.view.Gravity;
9. import android.view.LayoutInflater;
10. import android.view.View;
11. import android.view.View.OnClickListener;
12. import android.widget.Button;
13. import android.widget.EditText;
14. import android.widget.PopupWindow;
15.
16.
17. public class testAlertDialog extends Activity {
18. Button btnShowDialog;
19. Button btnShowDialog_Layout;
20. /** Called when the activity is first created. */
21. @Override
22. public void onCreate(Bundle savedInstanceState) {
23. super.onCreate(savedInstanceState);
24. setContentView(R.layout.main);
25. //定义按钮
26. btnShowDialog=(Button)this.findViewById(R.id.Button01);
27. btnShowDialog.setOnClickListener(new ClickEvent());
28. btnShowDialog_Layout=(Button)this.findViewById(R.id.Button02);
29. btnShowDialog_Layout.setOnClickListener(new ClickEvent());
30. }
31.
32.
33. //统一处理按键事件
34. class ClickEvent implements OnClickListener
复制代码 |
|