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

  • 相关阅读:
    Educational Codeforces Round 85 D. Minimum Euler Cycle(模拟/数学/图)
    Educational Codeforces Round 85 C. Circle of Monsters(贪心)
    NOIP 2017 提高组 DAY1 T1小凯的疑惑(二元一次不定方程)
    Educational Codeforces Round 85 B. Middle Class(排序/贪心/水题)
    Educational Codeforces Round 85 A. Level Statistics(水题)
    IOS中的三大事件
    用Quartz 2D画小黄人
    strong、weak、copy、assign 在命名属性时候怎么用
    用代码生成UINavigationController 与UITabBarController相结合的简单QQ框架(部分)
    Attempting to badge the application icon but haven't received permission from the user to badge the application错误解决办法
  • 原文地址:https://www.cnblogs.com/finehappy/p/2044568.html
Copyright © 2011-2022 走看看