java - 传递程序生成按钮的重复属性
问题描述
我使用多达 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);
}
解决方案
您可以创建一个接受 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
函数中。