博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 常用dialog提示对话框
阅读量:6643 次
发布时间:2019-06-25

本文共 3683 字,大约阅读时间需要 12 分钟。

在android应用程序中,经常需要用到dialog对话框让用户知道现在所在进行的操作(比如耗时的操作),或者提示某些信息和状态等,算是比较常用的一个知识点;

1、简单对话框

protected void dialog1(AlertDialog.Builder builder) {        builder.setTitle("标题");        builder.setPositiveButton("确定", null);        builder.setIcon(R.drawable.ic_launcher);        builder.setMessage("简单消息框");        builder.show();    }

2、带自定义内容对话框

protected void study2(AlertDialog.Builder builder) {        builder.setTitle("标题");        builder.setView(new EditText(this));        builder.setPositiveButton("确定", null);        builder.setIcon(android.R.drawable.ic_dialog_info);        builder.setMessage("简单消息框");        builder.show();    }

3、带单选按钮对话框

protected void study3(AlertDialog.Builder builder) {        builder.setTitle("请选择")                .setIcon(android.R.drawable.ic_dialog_info)                .setSingleChoiceItems(                        new String[] { "item1", "item2", "item3", "item4" }, 0,                        new DialogInterface.OnClickListener() {                            public void onClick(DialogInterface dialog,                                    int which) {                                Log.e("选择", "" + which);                                dialog.dismiss();                            }                        }).setNegativeButton("取消", null).show();    }

在选择了某一项之后,onClick回调事件会把选择的项的索引返回给用户;

4、带多选组合框对话框

protected void study4(AlertDialog.Builder builder) {        builder.setTitle("请选择")                .setIcon(android.R.drawable.ic_dialog_info)                .setMultiChoiceItems(                        new String[] { "item1", "item2", "item3", "item4" },                        new boolean[] { true, true, false, true },                        new OnMultiChoiceClickListener() {                            @Override                            public void onClick(DialogInterface dialog,                                    int which, boolean isChecked) {                                ListView lv = ((AlertDialog) dialog).getListView();                                Log.e("项" + which, "选择" + lv.getCheckedItemPositions().get(which));                            }                        }).setNegativeButton("取消", null).show();    }

在多选对话框中,选择了某一项并不会导致对话框隐藏,同样android也通过回调接口返回用户所选择的项;

5、进度条对话框

public void study5() {        ProgressDialog dialog = new ProgressDialog(MainActivity.this);        dialog.setCancelable(true);        dialog.setMessage("加载中...");        // dialog.setTitle("进度条框窗口");        // dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);        // dialog.setMax(100);        dialog.show();    }

 

6、除了上述的添加用户界面友好提示的方法,还可以通过WindowManager添加一个View到界面上向用户反馈信息,此种方法也更灵活

protected void study6() {        ViewGroup vg = (ViewGroup) getLayoutInflater().inflate(R.layout.dia,null);        pb = (ProgressBar) vg.findViewById(R.id.pb);        vg.removeAllViews();        WindowManager.LayoutParams lp = new WindowManager.LayoutParams(160,                160, WindowManager.LayoutParams.TYPE_APPLICATION,                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,                PixelFormat.TRANSLUCENT);        WindowManager windowManager = (WindowManager)getSystemService(Context.WINDOW_SERVICE);        windowManager.addView(pb, lp);    }

重要的步骤即是从lp开始,设置LayoutParams参数,然后添加到窗口;

7.使用Window将view添加到window上

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());                AlertDialog dialog = builder.show();                Window window = dialog.getWindow();                window.setContentView(R.layout.dialoglayout);

8.使用style来设置样式

//

Dialog dialog1 = new Dialog(getActivity(), R.style.MyDialog);                dialog1.setContentView(R.layout.dialoglayout);                dialog1.show();

 

 

 

转载地址:http://zvevo.baihongyu.com/

你可能感兴趣的文章
IP地址后面斜杠加具体数字详解
查看>>
Android开发性能优化大总结
查看>>
APACHE 2.2.8+TOMCAT6.0.14配置负载均衡
查看>>
angular-ngSanitize模块-linky过滤器详解
查看>>
资深人士剖析微软开源.NET事件:战略重心已经从PC转移到云端
查看>>
Construct Binary Tree from Inorder and Postorder Traversal
查看>>
ThinkPHP 3.2.2 视图模板中使用字符串截取函数
查看>>
ANT配合FIS执行前端打包任务
查看>>
JSON与XML的区别比较
查看>>
JAVA反射机制
查看>>
Dialog向Activity传递数据
查看>>
python sorted
查看>>
Pyqt 打包资源文件
查看>>
刷新轮的使用
查看>>
墨菲定律、二八法则、马太效应、手表定理、“不值得”定律、彼得原理、零和游戏、华盛顿合作规律、酒与污水定律、水桶定律、蘑菇管理原理、钱的问题、奥卡姆剃刀等13条是左右人生的金科玉律...
查看>>
AsyncTask简单入门
查看>>
eclipse:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path...
查看>>
C++移位运算符
查看>>
协方差的意义
查看>>
sgu139Help Needed!推断15数码是否有解,以及推断N数码是否有解的推论
查看>>