在Android开发中,经常需要在界面上弹出一些对话框,用来提示用户输入信息或者让用户做出选择,这就是Android中的对话框功能。
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
android:id="@+id/text_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="left"
android:text="帐号:"
android:textColor="#FFFFFF"
>
android:id="@+id/edit_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="left"
android:hint="请输入帐号"
android:inputType="none"
android:digits="abcdefghigklmnopqrstuvwx
yz1234567890_"
>
android:id="@+id/text_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="left"
android:text="密码:"
android:textColor="#FFFFFF"
>
android:id="@+id/edit_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="left"
android:hint="请输入密码"
android:inputType="textPassword"
android:digits="1234567890">
完成xml布局文件的编写之后,我们需要将该xml文件动态加载并转化为View对象,然后通过AlertDialog.Builder类的setView()方法将该View对象加载进来,就可以完成自定义AlertDialog对话框的创建了。具体的实现方法如下:
publicLoginDialog (Context context) {
this.mContext = context;
//动态加载布局生成View对象
LayoutInflater layoutInflater =LayoutInflater.from(mContext);
View longinDialogView =layoutInflater.inflate(R.layout.logindialog, null);
//获取布局中的控件
mUserName =(EditText)longinDialogView.findViewById(R.id.edit_username);
mPassword =(EditText)longinDialogView.findViewById(R.id.edit_password);
//创建一个AlertDialog对话框
longinDialog = new AlertDialog.Builder(mContext)
.setTitle("登录框")
.setView(longinDialogView)
//加载自定义的对话框式样
.setPositiveButton("确定", this)
.setNeutralButton("取消", this)
.create();
longinDialog.show();
}
那么如何来实现这些对话框功能呢?在Android中,对话框是使用Dialog类来实现。其中,Alertialog用于实现警告对话框;ProgressDialog用于实现带进度条的对话框;DatePickerDialog用于实现日期选择对话框;TimePickerDialog用于实现时间选择对话框。
今天我们就以登录界面为例实现一个简单的自定义AlertDialog对话框。先看效果图:
在这个自定义的AlertDialog对话框中,我们加入了两个TextView控件(用来显示“帐号:”和“密码:”)以及两个EditText控件(用来输入“帐号”和“密码”)。
那么如何将这些控件加入到自定义的AlertDialog对话框中呢?首先,我们需要创建一个xml布局文件来加载这些控件。这里,我创建了一个名为“logindialog.xml”的布局文件。在该布局文件中完成对上述四个控件的布局即可,具体的实现方法如下:
完成xml布局文件的编写之后,我们需要将该xml文件动态加载并转化为View对象,然后通过AlertDialog.Builder类的setView()方法将该View对象加载进来,就可以完成自定义AlertDialog对话框的创建了。具体的实现方法如下: