我是通过一本书学习的,所以请原谅这个新手问题。
我的xml中有一堆imageButtons,其中一个看起来如何:
<ImageButton android:src="@drawable/level1" android:layout_width="wrap_content"
android:id="@+id/imageButton1" android:layout_height="wrap_content"
android:onClick="button_clicked1"></ImageButton>
和处理代码:
public void button_clicked1(View v) {
text1.setText("clicked");
}
而不是让每个按钮都有其单独的onClick代码,无论如何我可以通过哪个按钮被点击?例如button_clicked(1)
然后button_clicked(2)
代替button_clicked1
就像现在一样(在上面的示例xml代码中)
或我别无选择,只能单独进行?
答案 0 :(得分:2)
有点 - 我喜欢做的是使我的View或Activity实现View.OnClickListener。
public class MyView extends ImageButton implements OnClickListener
然后在onCreate期间,我做了类似的事情:
((ImageButton)findViewById(R.id.imageButton1)).setOnClickListener(this);
然后,在我的onclick上:
public void onClick(View view){
switch(view.getId()){
case R.id.imageButton1:
// do something.
break;
case R.id.imageButton2:
// do somethign else.
break;
}
当然,如果您的任何按钮触发相同的事件行为,您绝对可以获得创意并抛出switch语句。此外,我不在我可以轻松查看我的机器人引用的地方,因此可能有一个特定于ImageButton的OnClickListener - 如果是这样,请在包含的View或Activity上实现它以合并处理程序......
希望有意义 - 快乐的编码!
乙