我有一个简单的脚本:
int phases = 6;
final int max = 8;
final TextView[] a = new TextView[(max * phases)];
final Button[] b = new Button[phases]; // creates the buttons to display
// the single phases
for (int x = 0; x < phases; x++) {
b[x] = new Button(this);
b[x].setText("yourbutton");
// linL.addView(b[x]);
b[x].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (a[(3)].getVisibility() == 0) {
for (int i = 0; i < max; i++)
a[i].setVisibility(View.GONE);
} else {
for (int i = 0; i < max; i++)
a[i].setVisibility(View.VISIBLE);
}
};
});
}
这基本上会检查文本视图是否可见,如果不可见,则会使其可见(加上反过来)。
我现在的问题是我不想一次又一次地切换相同的文本视图,我想根据按钮创建的当前循环的x来更改视图。
然而,当我尝试包含这个x时,它说它必须是最终的。
那么我如何在点击监听器脚本中获取参数呢? (我试图添加它们,但是它说我必须再次编程整个监听器...这就是为什么我要问是否有更聪明的方法来做它)
干杯,Christoph
答案 0 :(得分:0)
如果我正确进行,您需要将参数传递给OnClickListener。我建议你实现自己的OnClickListener接口 - 类似于rekaszeru的回答here
答案 1 :(得分:0)
您有两个选择:
一些一般性说明: 我不知道这是你编写代码的方式,还是你在这里编写时掩盖它的方式。 (蒙面,意味着您更改变量名称,以便更难理解您正在做什么)
所以,如果你掩饰它,请不要,它会让你更难回答。 如果这是你编写代码的方式,我真的鼓励你阅读一些关于编码标准的文章和重要性。您的代码没有正确缩进,并且变量的名称没有意义。完成该项目后,尝试在一个月后再次阅读您的代码,您将看到理解您所写内容的难度