Android弹出对话框

一:单击物理返回键弹出退出对话框



    


package com.ncsyeyy.YeyyAlertDialog;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;


public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }


//    创建dialog
    protected void createDialog(){
//        初始化AlertDialog构建器对象
        AlertDialog.Builder builder=new AlertDialog.Builder(MyActivity.this);
//        设置dialog的信息
        builder.setMessage("确认退出吗?");
//        设置dialog的标题
        builder.setTitle("提示");
//        添加确认和取消按钮
        builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
//                如果用户单击确认退出,则对话框消失,程序关闭
                dialog.dismiss();
                MyActivity.this.finish();\\把当前的Activity从程序的栈中取出来,结束掉,显示程序下面的界面
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
//                如果用户单击取消退出,则对话框消失
                dialog.dismiss();
            }
        });
//        创建对话框并显示
        builder.create().show();
    }


//    在activity中的键盘监听回调事件
    public boolean onKeyDown(int keyCode,KeyEvent event){
        if (keyCode==KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0){
            createDialog();
        }
        return false;
    }
}



如果在这个程序中有多个activity已经打开,想要结束掉程序的话,
需要使用结束程序的进程id或者终止当前程序的虚拟机的方式来实现
android.os.Process.killProcess(android.os.Process.myPid())
关闭当前程序的虚拟机

System.exit(0)

Android弹出对话框_第1张图片


二:点击弹出关于对话框


    


package com.ncsyeyy.YeyyAlertDialogGuanYu;


import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
import org.w3c.dom.Text;


public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView tv = (TextView) findViewById(R.id.tv);
        tv.setOnClickListener(myListener);
//        createDialog();
    }
    View.OnClickListener myListener =new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            createDialog();
        }
    };


    protected void createDialog(){
        AlertDialog.Builder builder=new AlertDialog.Builder(MyActivity.this);
        builder.setMessage("本程序是1.0版本,如有问题请及时提出!");
        TextView textView=new TextView(MyActivity.this);
        textView.setGravity(android.view.Gravity.CENTER_HORIZONTAL);
        textView.setText("关于");
        textView.setTextSize(30);
        AlertDialog alertDialog=builder.create();
        alertDialog.setCustomTitle(textView);
        alertDialog.show();
    }




//KEYCODE_MENU似乎并没有什么用
//    public boolean onKeyDown(int keyCode,KeyEvent event){
//        if (keyCode==KeyEvent.KEYCODE_MENU && event.getRepeatCount()==0){
//            createDialog();
//        }
//        return false;
//    }
}





android中AlertDialog可以进行自定义,而且方式有很多:
setCustomTitle方法:自定义title的布局形式
setView方法:自定义AlertDialog的布局形式
setIcon方法:设置对话框的图标
Android弹出对话框_第2张图片

三:自定义Dialog评价对话框



    
    



package com.ncsyeyy.YeyyDialog;


import android.app.Activity;


import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;


public class MyActivity extends Activity {


    private TextView tv;


    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv = (TextView) findViewById(R.id.TV);
    }


    protected void createDialog() {
        Dialog dialog = new AlertDialog.Builder(this)
//                设置对话框的标题和图标
                .setIcon(android.R.drawable.btn_dialog).setTitle("评价对话框")
//                设置对话框的内容
                .setMessage("请您对我的服务进行评价")
//                设置对话框的按钮
                .setPositiveButton("很好", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        tv.setText("很好");


                    }
                }).setNegativeButton("一般", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        tv.setText("一般");
                    }
                }).setNeutralButton("有待改进", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        tv.setText("有待改进");
                    }
                }).create();


//      显示对话框
        dialog.show();
    }
//    在activity中的键盘监听回调事件
    public boolean onKeyDown(int keyCode,KeyEvent event){
//    当按下物理键的menu键的时候触发事件
        if (keyCode==KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0){
            createDialog();
        }
        return false;
    }
}
Android弹出对话框_第3张图片


源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9177633



你可能感兴趣的:(Android学习)