Android弹出对话框

来源:互联网 发布:淘宝买账号 编辑:程序博客网 时间:2024/05/16 02:26
一:单击物理返回键弹出退出对话框

<?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 0
原创粉丝点击