简体   繁体   中英

Android, Bunch of imagebuttons

I am a learning via a book so please forgive this newbie question.

I have a bunch of imageButtons in my xml, here is how one of them looks:

<ImageButton android:src="@drawable/level1" android:layout_width="wrap_content" 
android:id="@+id/imageButton1" android:layout_height="wrap_content" 
android:onClick="button_clicked1"></ImageButton>

and processing code:

public void button_clicked1(View v) {
    text1.setText("clicked");

    }

rather than have each button have its separate onClick code, is there anyway I can pass which button was clicked? for example button_clicked(1) and then button_clicked(2) instead of button_clicked1 like it is now (in the above example xml code)

or i have no choice but have to do it separately?

Kind of - what I like to do is make my View or Activity implement View.OnClickListener.

public class MyView extends ImageButton implements OnClickListener

Then during onCreate, I do something like:

((ImageButton)findViewById(R.id.imageButton1)).setOnClickListener(this);

then, in my onclick:

public void onClick(View view){
 switch(view.getId()){
   case R.id.imageButton1:
      // do something.
      break;
   case R.id.imageButton2:
      // do somethign else.
      break;
 }

Of course, you can definitely get creative and toss the switch statement if any of your buttons should trigger the same event behavior. Also, I'm not in a place where I can easily view my droid references so there may be an OnClickListener specific to ImageButton - if so, implement that on your containing View or Activity to consolidate the handlers...

Hope that makes sense - happy coding!

B

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM