Android弹出对话框

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="单击物理返回键弹出退出对话框"
            android:textSize="25sp"
            />
</LinearLayout>


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)



二:点击弹出关于对话框
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <TextView
            android:id="@+id/tv"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:text="单击弹出关于对话框"
            />
</LinearLayout>

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方法:设置对话框的图标


三:自定义Dialog评价对话框

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <TextView


            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="单击物理返回键弹出评价对话框"
            android:textSize="20sp"
            />
    <TextView
            android:id="@+id/TV"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp"
            />
</LinearLayout>


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;
    }
}


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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值