cms
当前位置:首页->常见问题
Android: Custom DialogBox(安卓:自定义对话框)
  • 作者:本站
  • 日期:2013-10-25
  • 出处:totcms
  • 点击:883

介绍

    本文介绍如何在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 内空如下: