对话窗口( AlertDialog)

本文详细介绍了Android中对话框的各种类型及使用方法,包括简单的对话窗口、单选窗口、多选窗口和自定义窗口等。通过具体示例展示了如何设置对话框的标题、图标、消息内容等,并介绍了不同类型的交互方式。

//单纯的对话窗口

b1.setOnClickListener(newView.OnClickListener() {
    @Override
    public voidonClick(View v) {
        AlertDialog.Builder builder=newAlertDialog.Builder(AlertActivity.this);
        builder.setTitle("提示");
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setMessage("确定。。。。吗");
    //setPositiveButton 确定按钮
        
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
            @Override
            public voidonClick(DialogInterface dialog,int which) {
                Toast.makeText(getBaseContext(),"点击了确定", Toast.LENGTH_SHORT).show();
            }
        });
     //setNegativeButton 取消按钮
       
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
           @Override
           public voidonClick(DialogInterface dialog,int which) {
               Toast.makeText(getBaseContext(),"点击了取消", Toast.LENGTH_SHORT).show();
           }
       });
        //设置空白处是否执行按钮,没有的话,空白处单击消失,或许我会参数为true
       
builder.setCancelable(true);
        AlertDialog alertDialog=builder.create();
        alertDialog.show();
    }
});

单选窗口
b2.setOnClickListener(newView.OnClickListener() {
    @Override
    public voidonClick(View v) {
        AlertDialog.Builder builder=newAlertDialog.Builder(AlertActivity.this);
        builder.setTitle("请选择");
        builder.setIcon(R.mipmap.ic_launcher);
        //空白处单击的显示
        
builder.setCancelable(true);
        //单选项设置
        
finalString[] items={"上海","北京","烟台"};
        builder.setSingleChoiceItems(items,1,new DialogInterface.OnClickListener() {
            @Override
            public voidonClick(DialogInterface dialog,int i) {
                Toast.makeText(getBaseContext(),
                        items[i].toString(), Toast.LENGTH_SHORT).show();
                //界面是否一直保留
                //dialog.dismiss();
            
}
        });
        AlertDialog alertDialog=builder.create();
        alertDialog.show();
    }
});

多选窗口
b3.setOnClickListener(newView.OnClickListener() {
    @Override
    public voidonClick(View v) {
        AlertDialog.Builder builder=newAlertDialog.Builder(AlertActivity.this);
        builder.setTitle("请选择");
        builder.setIcon(R.mipmap.ic_launcher);
        //设置是否空白处单击显示
        //builder.setCancelable(false);
        //多选框设置
        
finalString [] items={"北京","上海","烟台"};
        boolean[] choice={true,true,false};
        final boolean[] itemchoice=new boolean[items.length] ;
        itemchoice[0]=true;
        itemchoice[1]=true;
        builder.setMultiChoiceItems(items, choice,
                newDialogInterface.OnMultiChoiceClickListener() {
            @Override
            public voidonClick(DialogInterface dialog,int i, booleanb) {
                if(b) {
                    Toast.makeText(getBaseContext(),
                            items[i].toString(), Toast.LENGTH_SHORT).show();
                    itemchoice[i]=true;
                }else{
                    itemchoice[i]=false;
                }
            }
        });
        builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
            @Override
            public voidonClick(DialogInterface dialog,int i) {
                String str ="";
                for(intch = 0; ch <items.length; ch++) {
                    str += (itemchoice[ch] ==true) ?items[ch] :"";
                }
                Toast.makeText(getBaseContext(), str, Toast.LENGTH_SHORT).show();
            }
        });
        AlertDialog alertDialog=builder.create();
        alertDialog.show();
    }
});

自定义窗口
b4.setOnClickListener(newView.OnClickListener() {
    @Override
    public voidonClick(View view) {
        View v=getLayoutInflater().inflate(R.layout.toast_layout,null);
        AlertDialog.Builder builder=newAlertDialog.Builder(AlertActivity.this);
        builder.setView(v);
        AlertDialog alertDialog=builder.create();
        alertDialog.show();
    }
});

基本构成 

setTitle :为对话框设置标题
setIcon :为对话框设置图标
setMessage:为对话框设置内容
setView : 给对话框设置自定义样式
setItems :设置对话框要显示的一个list,一般用于显示几个命令时
setMultiChoiceItems :用来设置对话框显示一系列的复选框
setNeutralButton    :普通按钮

setPositiveButton   :给对话框添加"Yes"按钮
setNegativeButton :对话框添加"No"按钮
create : 创建对话框
show :显示对话框

builder.setCancelable(true); //设置空白处是否执行按钮,没有的话,空白处单击消失,或许我会参数为true
     

(1)单纯的对话窗口包含以上所有组件,builder.setPositiveButton("确定",new DialogInterface.OnClickListener()确认按钮

 builder.setNegativeButton("取消",new DialogInterface.OnClickListener()    取消按钮

(2)单选窗口  builder.setSingleChoiceItems(items, 1,new DialogInterface.OnClickListener(),参数为1

先定义 选项内容

(3)多选窗口  builder.setMultiChoiceItems(items, choice,newDialogInterface.OnMultiChoiceClickListener() ,参数为choice,自己的选择

先定义选项内容,在定义选项规则数组,false未选中,true选中

(4)自定义窗口      View v=getLayoutInflater().inflate(R.layout.toast_layout,null);得到视图文件



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值