下面是我试过的。 “Forward” class extends Activity。它包含两个按钮。在这个类中,我们使用for循环创建了两个对象“收集器”类。在循环的第一次迭代中,我们创建第一个按钮。第二,我们再创建一个按钮。我们为这两个按钮设置了“OnClickListener”。但只有第二个按钮响应点击。第一个按钮不响应点击。我试图使用相同的变量名称(b1) - 我想坚持OO原则,不创建单独的对象来实现我的目标。 - 另外我期待2个对象的属性作为独立的实体。请帮助我。问候。按钮没有响应点击事件
Forward.java(是一种活动,包含两个按钮):
下面是一个for循环中,我创建集电极类的2个对象。
for (int i = 0; i < 2; i++) {
new Collector(this, i);
}
Collector.java:
public class Collector {
Forwarder f;
int n;
Button b1;
public Collector(Forwarder caller, int i) {
f = caller;
n = i; // 0 or 1
f.setContentView(R.layout.forwarder);
switch(n)
{
case 0:
b1 = (Button) f.findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// get a new Contact
Intent i = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
f.startActivityForResult(i, 1);
// onActivityResult has to be implemented in f because
// f extends Activity class
}
});
break;
case 1:
b1 = (Button) f.findViewById(R.id.button2);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// get a new Contact
Intent i = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
f.startActivityForResult(i, 1);
}
});
break;
default:
}
}
}
谢谢。但是,两者都是不同的对象? – Sohail
对于我来说,我也认为所有其他人都很难理解你正在尝试做什么。你在哪里创建你的新收藏家?收集器在何处设置内容视图?如果您经过循环并收集器将内容视图设置为您的转发器活动,则只会设置第二种情况。第一个案件被第二个案件“覆盖”。 – Opiatefuchs