淘特cms
当前位置:淘特CMS->帮助中心->常见问题
Android: Custom DialogBox(安卓:自定义对话框)
  • 作者:
  • 日期:2013/10/25 11:05:51
  • 出处:淘特CMS
  • 点击:

介绍

    本文介绍如何在android中创建自定义对话框窗口并从中获取结果

背景

    对话框主要被用作弹出窗口(或称为提示窗)出现在当前activity之上,用于执行一些操作或功能。

    你可以使用对话框提醒用户确定他的操作,使用事件驱动通知用户,或提醒用户因为其它的信息。因为对话框会打断UI的流动,因此通常使用它时用作最后的方法。在大部分情况下,你可能会集成了确定对话框,返回,提示框到你的app中。


    当打开一个对话框,当前activity将转到背景,此时打开的对话框置于前台中。当执行完操作后,对话框消失同时activity转到前景。 

代码

Dialog是创建对话框的基础类
创建项目如下:
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_main.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>

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"<, SPAN style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: blue; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px" class=code-keyword>>  
          
        <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>

以下是程序运行效果:

最新评论
用 户:
内 容:
验证码: