Android封装创建AlertDialog.Builder方法,以便快速创建列表按钮

本文介绍了如何封装一个Android工具类,用于简化创建AlertDialog.Builder的过程。通过在Java包下创建一个工具类,开发者只需传入Button、String数组和Context即可轻松创建列表按钮。详细步骤包括在XML布局文件中定义Button,Java中创建Util类并定义静态方法`createButtonList`,并在需要的地方调用此方法。文章还提供了工程的完整打包文件链接。

我在前面写过关于创建AlertDialog.Builer的方法
但在使用的过程当中,发现非常不方便,就想了个办法封装这个方法,这样我们再次使用的时候只需要调用这个方法就行了。

我的创建思路是在java包下建一个工具类,其他类需要创建按钮的时候只要调用工具类的相应方法即可。

首先我们在对应的activity xml文件中创建需要的Button标签,并设置id

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/main"
    >
    <Button
        android:id="@+id/btn"
        android:layout_gravity="center"
        android:gravity="bottom"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="LOG IN"/>
</LinearLayout>

然后我们在java包中创建一个名叫Util的类文件,不需要继承任何类

创建一个名为“createButtonList”的方法,这个方法就是封装后的方法

首先要传入Button,不然方法不知道是要设置那个Button

看了我前面的文章或者你本身使用过AlertDialog.Builder方法,
你会知道在new AlertDialog.Builder(.this)中,这个".this"需要class文件名,那我们在传入参数的时候就需要context对象

然后因为每次创建的列表元素不一样,所以我们需要传入String[]数组,这个数组就是列表的元素

综上,这个方法需要传入三个参数,分别是“Button”,“String[]”和“Context”
但因为在Java中的匿名内部类只可以访问final的局部变量,所以在String和Context前都必须加上final修饰
静态变量不能指向非静态方法,所以在方法前面要加上static修饰

我们直接创建
Util.java

public static void createButtonList(Button button,final String[] items,final Context context){}
		//创建button的监听事件
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setTitle("FUNCTION")    //此处设置弹出窗口的标题
                        //如果需要也可以在标题前面加上图标,使用.setIcon
                        .setItems(items, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                //makeText第一个输入是Context对象,直接带入context
                                //第二个为输出文本,这里代入数组items(**不能忘了后面的which序号**)
                                //第三个为窗口弹出时间长短
                                Toast.makeText(context, items[which],Toast.LENGTH_SHORT)
                                        //设为显示
                                        .show();
                            }
                        });
                builder.create().show();
            }
        });

MainActivity.java

    Button button;      //创建一个Button对象
    //这是写我们需要的列表元素
    final String[] items = new String[]{"book1","book2","book3"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //绑定对应的Button对象
        button = (Button)findViewById(R.id.btn);
        //引用Util类中的createButtonList方法
        Util.creatButtonList(button, items, MainActivity.this);
    }

总结一下过程顺序,xml ⇒ Util.java ⇒ MainActivity.java(就是你需要引用方法的java文件)

运行效果
这里写图片描述

以下是这个工程的完整打包文件
https://download.csdn.net/download/tnxlcn/10641458

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值