标签:cli public this login multi 文本 private alert 按钮
今天我学习了完成后提示对话框的实现方法:
1.引用AlertDialog类包实例化对话框
2.设置对话框文本信息,标题
3.设置对话框完成按钮单击事件:对话框消失,修改对话框状态,关闭当前页面
4.设置对话框再来一次按钮事件:对话框消失,修改对话框状态,调用之前的方法,创建并显示对话框。
protected void dialog(){ typedialog=false; //实例化对话框 AlertDialog.Builder builder=new AlertDialog.Builder(OneActivity.this); //设置对话框文本信息 builder.setMessage("太棒了,书写完成"); builder.setTitle("提示"); builder.setPositiveButton("完成",new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog,int which){ dialog.dismiss();; typedialog=true; finish(); } }); builder.setNegativeButton("再来一次",new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog,int which){ dialog.dismiss(); typedialog=true; i=1; lodimagep(i); } }); builder.create().show(); }
onClick的参数中有一个which,这个which实际上代表的是一个唯一的int型数值。像上面的setPositiveButton中的which代表的是-1,setNegativeButton中的which代表的是-3,setNeutralButton中的which代表的是-2.
设置列表对话框
private void dialog2() { final String items[]={"张三","李四","王五"}; //dialog参数设置 AlertDialog.Builder builder=new AlertDialog.Builder(this); //先得到构造器 builder.setTitle("提示"); //设置标题 //builder.setMessage("是否确认退出?"); //设置内容 builder.setIcon(R.mipmap.ic_launcher);//设置图标,图片id即可 //设置列表显示,注意设置了列表显示就不要设置builder.setMessage()了,否则列表不起作用。 builder.setItems(items,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
这里的setItems中的Onclick中的which属性是items数组的下标!
设置单选按钮对话框
private void dialog3(){ final String items[]={"男","女"}; AlertDialog.Builder builder=new AlertDialog.Builder(this); //先得到构造器 builder.setTitle("提示"); //设置标题 builder.setIcon(R.mipmap.ic_launcher);//设置图标,图片id即可 builder.setSingleChoiceItems(items,0,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //dialog.dismiss(); Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
设置多选按钮对话框
private void dialog4(){ final String items[]={"篮球","足球","排球"}; final boolean selected[]={true,false,true}; AlertDialog.Builder builder=new AlertDialog.Builder(this); //先得到构造器 builder.setTitle("提示"); //设置标题 builder.setIcon(R.mipmap.ic_launcher);//设置图标,图片id即可 builder.setMultiChoiceItems(items,selected,new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { // dialog.dismiss(); Toast.makeText(MainActivity.this, items[which]+isChecked, Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); //android会自动根据你选择的改变selected数组的值。 for (int i=0;i<selected.length;i++){ Log.e("hongliang",""+selected[i]); } } }); builder.create().show(); }
标签:cli public this login multi 文本 private alert 按钮
原文地址:https://www.cnblogs.com/wangzhaojun1670/p/12254676.html