Android实例-手机安全卫士(十)-自定义对话框

一、目标。

  当点击“手机防盗”时弹出自定义的设置密码对话框。如果已经设置密码,则弹出自定义的输入密码对话框。

二、代码实现。

  1、在layout文件夹下新建xml(取名setpwddialog.xml)文件用于设置自定义对话框的UI。

新建xml文件代码如下;

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="320dip"
 4     android:layout_height="wrap_content"
 5     android:gravity="center" >
 6 
 7     <TextView
 8         android:id="@+id/setpwddialog_tv_title"
 9         android:layout_width="300dip"
10         android:layout_height="40dip"
11         android:gravity="center"
12         android:text="设置防盗密码"
13         android:textSize="25dip" />
14 
15     <EditText
16         android:id="@+id/setpwddialog_et_pwd"
17         android:layout_width="300dip"
18         android:layout_height="40dip"
19         android:layout_below="@id/setpwddialog_tv_title"
20         android:hint="请输入密码" />
21 
22     <EditText
23         android:id="@+id/setpwddialog_et_pwd_conf"
24         android:layout_width="300dip"
25         android:layout_height="40dip"
26         android:layout_below="@id/setpwddialog_et_pwd"
27         android:hint="确认密码" />
28 
29     <Button
30         android:id="@+id/setpwddialog_bt_conf"
31         android:layout_width="130dip"
32         android:layout_height="50dip"
33         android:layout_below="@id/setpwddialog_et_pwd_conf"
34         android:layout_marginLeft="10dip"
35         android:text="确认" />
36 
37     <Button
38         android:id="@+id/setpwddialog_bt_cancel"
39         android:layout_width="130dip"
40         android:layout_height="50dip"
41         android:layout_alignTop="@id/setpwddialog_bt_conf"
42         android:layout_alignRight="@id/setpwddialog_et_pwd_conf"
43         android:layout_marginRight="10dip"
44         android:text="取消" />
45 
46 </RelativeLayout>
View Code

  2、在主界面代码中新建方法(取名showSetPwdDialog),用于点击“手机防盗”时弹出自定义的对话框。在新建方法(showSetPwdDialog())中

    ①.通过new Builder(Context context)的方式创建出一个新的AlertDialog.Builder对象(取名builder);

    ②.通过View.inflate(Context context, int resource, ViewGroup root)方法获得一个View对象(取名view)。inflate方法中Context是上下文,本例中为this,int resource是所要加载的xml资源文件的id(本例中为新建的xml文件(setpwddialog.xml)),ViewGroup root是父视图组(本例中为null)。

    ③.通过AlertDialog.Builder对象(builder)的setView(View view)方法将inflate获得View对象(view)传入;

    ④.最后通过AlertDialog.Builder对象(builder)的shou()方法将对话框显示出来。

新建弹出自定义对话框的方法(showSetPwdDialog)代码如下:

1 protected void showSetPwdDialog() {
2         AlertDialog.Builder builder = new Builder(HomeActivity.this);
3         View view = View.inflate(this, R.layout.setpwddialog, null);
4         builder.setView(view);
5         builder.show();
6     }
View Code

 

posted @ 2015-01-23 21:18  红烧大白鲨  阅读(217)  评论(0编辑  收藏  举报