安卓的几种弹窗方法

本文详细介绍了安卓系统中实现弹窗的各种方法,包括系统级别的通知弹窗、对话框(AlertDialog)、自定义视图弹窗等,同时探讨了不同场景下选择不同弹窗方式的策略。

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

安卓的几种弹窗方法

代码片.

public class MainActivity extends AppCompatActivity {
    private Button btn, btn2, btn3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OnClick onClick = new OnClick();
        btn = findViewById(R.id.button2);
        btn2 = findViewById(R.id.button3);
        btn3 = findViewById(R.id.button4);
        btn.setOnClickListener(onClick);
        btn2.setOnClickListener(onClick);
        btn3.setOnClickListener(onClick);

    }

    class OnClick implements View.OnClickListener {
        @Override
        public void onClick(View view) {

            switch (view.getId()) {
                //单选框弹窗
                case R.id.button2:
                    final String s[] = new String[]{"男", "女"};
                    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                    builder.setTitle("测试")
                            .setSingleChoiceItems(s, 0, new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                    Toast.makeText(MainActivity.this, s[i], Toast.LENGTH_LONG).show();
                                }
                            }).setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            dialogInterface.dismiss();//关闭弹窗,可写可不写,看情况
                        }
                    }).setCancelable(false)//不能点击弹窗之外的地方
                            .show();
                    break;

                    //多选弹窗
                case R.id.button3:
                    final String s1[] = new String[]{"时崎狂三", "乌贼娘", "momo"};
                    final boolean isok[] = new boolean[]{true, false, false};
                    AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);
                    builder1.setTitle("你的老婆是").setMultiChoiceItems(s1, isok, new DialogInterface.OnMultiChoiceClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                            Toast.makeText(MainActivity.this, s1[i] + "选择状态" + isok[i], Toast.LENGTH_LONG).show();
                        }
                    }).setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {

                        }
                    }).show();
                    break;


                    //自定义弹窗
                case R.id.button4:
                    LayoutInflater layoutInflater = LayoutInflater.from(MainActivity.this);//适配器
                    View v = layoutInflater.inflate(R.layout.dialoglayout, null);//引用自定义布局
                    Button button = findViewById(R.id.button4);//可以获取到自定义布局里面的控件
                    button.setOnClickListener(new View.OnClickListener() {//监听控件的事件
                        @Override
                        public void onClick(View view) {
                          //这里写事件代码
                        }
                    });
                    AlertDialog.Builder builder2 = new AlertDialog.Builder(MainActivity.this);//创建弹窗
                    builder2.setView(v).show();//设置自定义布局并show出来

                    break;

                 //透明弹窗
                case R.id.button_aploh:
                    Dialog dialog = new Dialog(MainActivity.this);
                    LayoutInflater layoutI = LayoutInflater.from(MainActivity.this);//适配器
                    View v2 = layoutI.inflate(R.layout.dialoglayout, null);//引用自定义布局
                    dialog.setContentView(v2);
                    dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);//最重要的一行
                    dialog.show();
                    break;
            }

        }
    }
}

效果:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值