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

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

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

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



    

然后我们在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文件)

运行效果
Android封装创建AlertDialog.Builder方法,以便快速创建列表按钮_第1张图片

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

你可能感兴趣的:(Android)