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

  • 相关阅读:
    java 封装练习题3
    java 封装练习题2
    java 封装练习题1
    java 面向对象练习题6
    java 面向对象练习题5
    java 面向对象练习题4
    java 练习 计算5的阶乘 5!的结果是?
    java 练习 题目四:控制台输出九九乘法表
    java 练习 题目三:这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
    java 练习 题目二:我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
  • 原文地址:https://www.cnblogs.com/finehappy/p/2044568.html
Copyright © 2011-2022 走看看