Android开发中如何创建自定义对话框

来源:互联网 发布:知学学院百度百科 编辑:程序博客网 时间:2024/05/16 09:39

背景:

无论是Android,还是其他什么平台,对话框的主要形式都是弹出,或者我们可以说是一个在当前活动中打开的提示,来执行一些操作或实现一些功能。

你可以用一个对话框来问用户以确认一个行动,向用户通告一个事件,或者提示用户额外信息。因为对话框扰乱UI流,你应该只是把它们当做最后的手段来用。在大多数情况下,你应该直接整合确认、反馈和提示到你的APP中。

当一个对话框打开,当前活动(通过该活动我们打开了对话框)成为背景,而对话框成为前景。在执行对话框中操作并关闭之后,背景中的活动又变回前景。

使用代码

对话是创建对话框的基础类。

创建一个带有如下细节的项目:

  • ProjectName: CustomDialogBox
  • PackageName: sat.tuts4mobile.customdialogbox
  • ActivityName: CustomDialogActivity >

在CustomDialogActivity.java文件复制如下代码:

package sat.tuts4mobile.customdialogbox;import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class CustomDialogActivity extends Activity {    Button buttonDialog;    TextView textDialog;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                textDialog = (TextView)findViewById(R.id.textView1);        buttonDialog = (Button)findViewById(R.id.buttondialog);        buttonDialog.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                showCustomDialog(textDialog);            }        });                    }    protected void showCustomDialog(final TextView _textDialog) {        // TODO Auto-generated method stub        final Dialog dialog = new Dialog(CustomDialogActivity.this);        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);        dialog.setContentView(R.layout.customdailog);                final EditText editText = (EditText)dialog.findViewById(R.id.editText1);        Button button = (Button)dialog.findViewById(R.id.button1);            button.setOnClickListener(new View.OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                _textDialog.setText(editText.getText().toString());                dialog.dismiss();            }        });                        dialog.show();    }}

activity_mail.xml文件中,复制如下代码:

 <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"     android:padding="10dip">    <Button        android:id="@+id/buttondialog"        android:layout_width="fill_parent"        android:layout_height="40dip"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:text="Click to show dialog"         android:background="#336699"        android:textSize="25sp"        android:textColor="#ffffff"/>    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:text=""         android:textSize="25sp"/></RelativeLayout>

创建新的XML文件命名为customdialog.xml并复制如下代码:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:padding="5dip"     android:background="#336699">    <EditText        android:id="@+id/editText1"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:ems="10"         android:hint="enter text to display"        android:singleLine="true">                <requestFocus />    </EditText>    <Button        android:id="@+id/button1"        android:layout_width="120dip"        android:layout_height="40dip"        android:layout_below="@+id/editText1"        android:layout_centerHorizontal="true"        android:layout_marginTop="17dp"        android:text="Submit"        android:textSize="25sp"        android:background="#669900" /></RelativeLayout>

当你运行应用程序的时候,你将看到如下显示:

Android Android Android

原创粉丝点击