首页 > 解决方案 > 传递程序生成按钮的重复属性

问题描述

我使用多达 30 个“for”循环生成了很多按钮,并且几乎所有这些代码都是相同的。我想知道是否有可能以某种方式在我的“for”循环之外获取我的“button.set”属性以将其传递给其他循环。

   for (int i = 1; i < 4; i++) {

        Button button = new Button(this);
        button.setId(i);
        button.setLayoutParams(params);
        button.setTextColor(Color.parseColor("#ffffff"));
        button.setAllCaps(false);
        button.setTextScaleX(0.92f);
        button.setPadding(20, 20, 20, 20);
        button.setBackgroundColor(Color.parseColor("#70553B"));
        button.getBackground().setAlpha(20);
        button.setOnClickListener(this);
        button.setMaxLines(1);
        button.setGravity(Gravity.CENTER);
        buttonHolder[i] = button;
        side_a.addView(button);
    }

标签: javaandroidbutton

解决方案


您可以创建一个接受 Button 并将所有设置应用于它的函数:

   public void setButtonParams(Button button){
        button.setTextColor(Color.parseColor("#ffffff"));
        button.setAllCaps(false);
        button.setTextScaleX(0.92f);
        button.setPadding(20, 20, 20, 20);
        button.setBackgroundColor(Color.parseColor("#70553B"));
        button.getBackground().setAlpha(20);

        button.setMaxLines(1);
        button.setGravity(Gravity.CENTER);
   }
   for (int i = 1; i < 4; i++) {

        Button button = new Button(this);
        button.setId(i);
        button.setLayoutParams(params);
        setButtonParams(button);
        button.setOnClickListener(this);
        buttonHolder[i] = button;
        side_a.addView(button);
    }

如果您还想设置 id 和其他依赖于上下文的值,您可以将它们作为参数添加到setButtonParams函数中。


推荐阅读