在Android开发中,会经常用到AlertDialog,创建的方法有很多种方式,下面从Builder直接显示来说明一些有趣的事情,下面的代码想显示一个单选AlertDialog:
Builder builder = new AlertDialog.Builder(this); builder.setTitle("标题"); builder.setMessage("内容"); builder.setSingleChoiceItems(new String[]{"选项 A", "选项 B", "选项 C", "选项 D"}, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.i(getClass().getName(), "{witch = " + which + "}"); } }); builder.show();
运行后的如图:
产生这个问题的表面原因是setMessage和setSingleChoiceItems都被调用了,而根本原因只要参照其AlertDialog$Builder的源码就可以找到!
单独调用后的效果一切就正常了,效果如下:
如果通过Builder获得AlertDialog引用,然后对AlertDialog再做一些显示操作,还会发现一些有趣的效果!:)