Android下的Dialog
16lz
2021-01-26
最新的项目需求中,应用到了Dialog。之前也是有用过,但当时没有用心记下来。这一次,来一个更全一些的信息记录,给自己一个交代。 先构建基本的显示方法:
对话框中有2个按钮 通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。
这算是一个循环往复,学习不断进化、优化~~
源码
理由是给弱者的安慰~~
/** * 测试其他弹出框 * * @param str */ private void showDialog(String str) { new AlertDialog.Builder(MainActivity.this) .setMessage(str) .show(); }1.确定取消对话框
对话框中有2个按钮 通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。
/** * 確定取消框 */ private void showEnsureOrNotDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.superman); builder.setTitle("確定取消框"); builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "您點擊了確定按鈕", Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "您点击了取消按钮", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }2.多个按钮信息框
/** * 多个选择信息框 */ private void showMultiChoice() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.iron_man); builder.setTitle("多个选择信息框--投票"); builder.setMessage("你喜欢哪个动作明星?"); builder.setPositiveButton("李连杰", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("你选择了--李连杰"); } }); builder.setNeutralButton("成龙", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("你选择了--成龙"); } }); builder.setNeutralButton("甄子丹", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("你选择了--甄子丹"); } }); builder.setNegativeButton("吴京", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("你选择了--吴京"); } }); builder.create().show(); }3,单选列表框
/** * 展示单选列表框 */ private void showSingleChoice() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.panda); builder.setTitle("单项选择"); builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { singleChoiceId = which; showDialog("您选择了第" + which + "项,内容是:" + mItems[which]); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("确定"); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("取消"); } }); builder.create().show(); }4,列表框
/** * 列表展示,多项选择 */private void showMultiListChoice() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("列表框多选"); builder.setItems(mItems, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("你选择了第" + which + "项,你认为最重要的是:" + mItems[which]); } }); builder.create().show();}5,进度展示
/** * 进度条展示 */ private void showProgressDialog() { final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setIcon(R.drawable.panda1); progressDialog.setTitle("进度条展示窗口"); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setMax(100); progressDialog.setButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("确定"); progressDialog.dismiss(); } }); progressDialog.setButton2("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { showDialog("取消"); progressDialog.dismiss(); } }); progressDialog.show(); new Thread() { @Override public void run() { int progress = 0; while (progress < 100) { try { Thread.sleep(100); progress++; progressDialog.incrementProgressBy(5); } catch (InterruptedException e) { e.printStackTrace(); } } super.run(); } }.start(); }6,读取进度展示
/** * 读取进度 */ private void readProgressProgress() { ProgressDialog mProgressDialog = new ProgressDialog(this); mProgressDialog.setTitle("读取ing"); mProgressDialog.setMessage("正在读取中请稍候"); mProgressDialog.setIndeterminate(true); mProgressDialog.setCancelable(true); mProgressDialog.show(); }7,自定义布局框展示
/** * 展示自定义布局 */ private void showSelfDefine() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); LayoutInflater factory = LayoutInflater.from(this); final View textEntryView = factory.inflate(R.layout.self_define_view, null); builder.setIcon(R.drawable.bired); builder.setTitle("自定义输入框"); builder.setView(textEntryView); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { EditText userName = (EditText) textEntryView.findViewById(R.id.etUserName); EditText password = (EditText) textEntryView.findViewById(R.id.etPassWord); showDialog("姓名 :" + userName.getText().toString() + "密码:" + password.getText().toString() ); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { } }); builder.create().show(); }8,选项列表结果多个展示框
/** * 展示列表选项多个展示框 */ private void showMultiResult() { final ArrayList<Integer> resultId = new ArrayList<>(); final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); resultId.clear(); builder.setIcon(R.drawable.master); builder.setTitle("多项选择"); builder.setMultiChoiceItems(mItems, new boolean[]{false, false, false, false,false}, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { if (isChecked) { resultId.add(which); showDialog("你选择了第" + which + "个,内容是" + mItems[which]); } else { resultId.remove(which); } } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String str = ""; int size = resultId.size(); for(int i=0;i<size;i++){ str+=mItems[resultId.get(i)]+"fenge"; } showDialog(str); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.create().show(); }公共的变量:
/** * 选择列表数据 */final String[] mItems = {"学习力", "记忆力", "身体", "强大心理素质", "创造力"};/** * 默认被选中的ID */int singleChoiceId = -1;
这算是一个循环往复,学习不断进化、优化~~
源码
理由是给弱者的安慰~~
更多相关文章
- 去掉安装地图
- okHttpUtils(hongyang)的配置及使用(网络框架)
- 【Android学习笔记】双屏开发 Presentation副屏/客显的使用
- Android(安卓)仿抖音列表
- Android实现ViewPager滑动播放视频,ViewPager+Fragment取消懒加载
- 安卓开发----TextView控件属性列表
- Android(安卓)实现用户列表信息的功能,然后选择删除幻灯片删除功
- Android读取应用列表权限漏洞
- Android在开发中的实用技巧之ExpandableListView简单实现商品列