Android studio之对话框

本文详细介绍了在Android Studio中创建对话框的四种类型:基础对话框、确认对话框、列表对话框、单选和复选对话框。通过示例代码展示了如何在ListView长按事件中实现这些对话框,包括设置内容、按钮、列表项和选项选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最基础对话框

创建对话框一般步骤:
第一步:创建AlertDialog.Builder对象
第二步:设置图标 标题 内容 按钮等
第三步:调用create()
第四部:调用show()
在这里插入图片描述
在ListView长按点击事件中编写一个:

 @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
        AlertDialog.Builder builder=new AlertDialog.Builder( this );
        builder.setIcon( R.drawable.apple );
        builder.setTitle( "消息提示" );
        builder.setMessage( "这是一个简单的对话框" );
        builder.setPositiveButton( "确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText( MainActivity.this, "点击了确定", Toast.LENGTH_SHORT ).show();
            }
        } );
        builder.create().show();
        return true;//消化,false不消化,也就是会执行点击
    }

在这里插入图片描述

确认对话框

实现确认对话框:
不调用setMessage()设置内容
调用setNegativeButton()方法添加取消方法

在ListView长按点击事件中编写一个:

 @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
        AlertDialog.Builder builder=new AlertDialog.Builder( this );
        builder.setIcon( R.drawable.apple );//图标
        builder.setTitle( "消息提示" );//标题
        builder.setNegativeButton( "取消",null );//null代表不作任何操作,只是消失对话框
        builder.setPositiveButton( "确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();//退出活动
                //Toast.makeText( MainActivity.this, "点击了确定", Toast.LENGTH_SHORT ).show();
            }
        } );
        builder.create().show();
        return true;//消化,false不消化,也就是会执行点击
    }

在这里插入图片描述

列表对话框

实现步骤:
1、准备一个数组资源
2、调用setItems()设置列表项

在ListView长按点击事件中编写一个:

@Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(this, "点击了"+position,Toast.LENGTH_SHORT).show();
    }
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        //Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
        final String[] str={"1","2","3","4"};
        AlertDialog.Builder builder=new AlertDialog.Builder( this );
        builder.setIcon( R.drawable.apple );//图标
        builder.setTitle( "消息提示" );//标题
        builder.setItems( str, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            //编写点击事件的方法
                Toast.makeText( MainActivity.this, "用户选择了"+str[which], Toast.LENGTH_SHORT ).show();
            }
        } );

        builder.create().show();
        return true;//消化,false不消化,也就是会执行点击
    }

在这里插入图片描述

单选对话框

实现步骤:
1、准备一个数组资源
2、调用setSingleChoiceItems()设置单选列表项

在ListView长按点击事件中编写一个:

 int selectId=0;
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        //Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
        final String[] str={"1星","2星","3星","4星","5星"};
        AlertDialog.Builder builder=new AlertDialog.Builder( this );
        builder.setIcon( R.drawable.apple );//图标
        builder.setTitle( "大侠,给个五星好评吧" );//标题
        builder.setSingleChoiceItems( str, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                selectId=which;
                Toast.makeText( MainActivity.this, "你选择了"+str[which], Toast.LENGTH_SHORT ).show();
            }
        } );
        builder.setPositiveButton( "确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText( MainActivity.this, "你的决定是"+str[selectId], Toast.LENGTH_SHORT ).show();
            }
        } );
        builder.create().show();
        return true;//消化,false不消化,也就是会执行点击
    }

在这里插入图片描述

复选对话框

实现步骤:
1、准备一个数组资源
2、调用setMultiChoiceItems()设置多选列表项

在ListView长按点击事件中编写一个:

ArrayList<Integer> choice=new ArrayList<Integer>();
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        //Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
        final String[] str={"足球","篮球","乒乓球","羽毛球","棒球"};
        AlertDialog.Builder builder=new AlertDialog.Builder( this );
        builder.setIcon( R.drawable.apple );//图标
        builder.setTitle( "你喜欢下列那些运动" );//标题
        builder.setMultiChoiceItems( str, new boolean[]{false, false, false, false, false}, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                if(isChecked)
                    choice.add(which);
                else
                    choice.remove(which);
                Toast.makeText( MainActivity.this, "你选了"+str[which]+"  "+"你的选择有"+choice.toString()+"项", Toast.LENGTH_SHORT ).show();
            }
        } );

        builder.setPositiveButton( "确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText( MainActivity.this, "你的决定是"+choice.toString(), Toast.LENGTH_SHORT ).show();
            }
        } );
        builder.create().show();
        return true;//消化,false不消化,也就是会执行点击
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值