zoukankan      html  css  js  c++  java
  • Android 对话框 示例

    书中这部分展示了4种Android对话框。


    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.app.ProgressDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;

    public class ActivityMain extends Activity {
        private static final int DIALOG1 = 1;
        private static final int DIALOG2 = 2;
        private static final int DIALOG4 = 4;
        private static final int DIALOG3 = 3;


        @Override
        protected Dialog onCreateDialog(int id) {
            switch (id) { //根据不同分支生成不同的对话框
            case DIALOG1:
                return buildDialog1(ActivityMain.this);

            case DIALOG2:
                return buildDialog2(ActivityMain.this);

            case DIALOG3:
                return buildDialog3(ActivityMain.this);
            case DIALOG4:
                return buildDialog4(ActivityMain.this);

            }
            return null;
        }
        //显示对话框之前调用的方法
        protected void onPrepareDialog(int id, Dialog dialog){
            if(id==DIALOG1){
                setTitle("测试");
            }
        }

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.alert_dialog); //设置当前的显示

            Button button1 = (Button) findViewById(R.id.button1);
            button1.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    showDialog(DIALOG1); //设置单击后的事件
                }
            });

            Button buttons2 = (Button) findViewById(R.id.buttons2);
            buttons2.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    showDialog(DIALOG2);
                }
            });

            Button button3 = (Button) findViewById(R.id.button3);
            button3.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    showDialog(DIALOG3);
                }
            });
           
            Button button4 = (Button) findViewById(R.id.button4);
            button4.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    showDialog(DIALOG4);
                }
            });
        }

        private Dialog buildDialog1(Context context) {
            AlertDialog.Builder builder = new AlertDialog.Builder(context); //创建器
            builder.setIcon(R.drawable.alert_dialog_icon);
            builder.setTitle(R.string.alert_dialog_two_buttons_title);
            builder.setPositiveButton(R.string.alert_dialog_ok,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {

                            setTitle("点击了对话框上的确定按钮");
                        }
                    }); //确定按钮的定义和事件
            builder.setNegativeButton(R.string.alert_dialog_cancel,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {

                            setTitle("点击了对话框上的取消按钮");
                        }
                    });//取消按钮的定义和事件。
            return builder.create();

        }
        private Dialog buildDialog2(Context context) {
            AlertDialog.Builder builder = new AlertDialog.Builder(context); //下面都是从配置文件当中取出内容设置对话框属性。
            builder.setIcon(R.drawable.alert_dialog_icon);
            builder.setTitle(R.string.alert_dialog_two_buttons_msg);
            builder.setMessage(R.string.alert_dialog_two_buttons2_msg);
            builder.setPositiveButton(R.string.alert_dialog_ok,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {

                            setTitle("点击了对话框上的确定按钮");
                        }
                    });
            builder.setNeutralButton(R.string.alert_dialog_something,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {

                            setTitle("点击了对话框上的进入详细按钮");
                        }
                    });
            builder.setNegativeButton(R.string.alert_dialog_cancel,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {

                            setTitle("点击了对话框上的取消按钮");
                        }
                    });
            return builder.create();
        }

        private Dialog buildDialog3(Context context) {
            LayoutInflater inflater = LayoutInflater.from(this);
            final View textEntryView = inflater.inflate(
                    R.layout.alert_dialog_text_entry, null); //还原配置文件到View对象
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setIcon(R.drawable.alert_dialog_icon);
            builder.setTitle(R.string.alert_dialog_text_entry);
            builder.setView(textEntryView); //设置显示样式
            builder.setPositiveButton(R.string.alert_dialog_ok,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            setTitle("点击了对话框上的确定按钮");
                        }
                    });
            builder.setNegativeButton(R.string.alert_dialog_cancel,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            setTitle("点击了对话框上的取消按钮");
                        }
                    });
            return builder.create();
        }
       
        //进度条对话框很简单
        private Dialog buildDialog4(Context context) {
            ProgressDialog dialog = new ProgressDialog(context);
            dialog.setTitle("正在下载歌曲");
            dialog.setMessage("请稍候……");
            return  dialog;
        }
    }

  • 相关阅读:
    JAVA8 之 Stream 流(四)
    关于iphone 6s 页面功能不能正常使用问题
    关于ES6语法的 一些新的特性
    微信授权一直跳转
    js 一道题目引发的正则的学习
    关于this在不同使用情况表示的含义
    详细解析arry.map() ,function.apply() 方法
    关于服务器无法在已发送http表头之后设置状态问题
    七牛上传视频并转码
    使用 v-cloak 防止页面加载时出现 vuejs 的变量名
  • 原文地址:https://www.cnblogs.com/finehappy/p/2044568.html
Copyright © 2011-2022 走看看