我想通过代码创建一个作为 Button 子类的对象数组。
public class MyButton extends Button {
private Context ctx;
private int status;
public MyButton(Context context) {
super(context);
ctx = context;
status = 0;
}
private click() {
status = 1;
// OTHER CODE THAT NEEDS TO STAY HERE
}
}
在主要活动中,我这样做:
public class myActivity extends Activity {
private MyButton[] myButtons = new MyButton[100];
@Override
public onCreate(Bundle si) {
super.onCreate(si);
createButtons();
}
private void createButtons() {
for (int w=0; w<100; w++) {
myButtons[w] = new MyButton(myActivity.this);
myButtons[w].setOnClickListener(new View.onClickListener() {
public void onClick(View v) {
// ... (A)
}
});
}
}
}
现在我希望每次单击按钮时都运行 MyButton 中的 click() 方法。似乎很明显,但它不在我的眼中。
如果我公开 click() 方法并直接从 (A) 运行它,我会收到错误,因为 myButtons[w].click() 不是静态的,不能从那里运行。
同时,我无法理解将代码放在 MyButton 类中的何处以拦截单击并从那里运行 click() 。我应该覆盖 onClick 吗?或者我应该覆盖 onClickListener?或者我还应该做什么?
每当单击 myButtons[] 对象之一时,如何运行 click() ?
谢谢您的帮助。