背景:

无论是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文件命名为customdialog.xml并复制如下代码:



    
                 
        
    
    

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