2020/2/2学习总结

今天我学习了完成后提示对话框的实现方法:

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();  
    } 
原文地址:https://www.cnblogs.com/wangzhaojun1670/p/12254676.html