Android, куча кнопок изображений - PullRequest
0 голосов
/ 25 июля 2011

Я учусь по книге, поэтому, пожалуйста, прости этот вопрос новичка.

В моем 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-кода)

или у меня нет выбора, но я должен сделать это отдельно?

1 Ответ

2 голосов
/ 25 июля 2011

Вид - то, что мне нравится делать - это сделать мой View или Activity реализующим View.OnClickListener.

public class MyView extends ImageButton implements OnClickListener

Затем во время onCreate я делаю что-то вроде:

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

тогда в моем клике:

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

Конечно, вы можете определенно проявить творческий подход и бросить оператор switch, если какая-либо из ваших кнопок должна вызывать такое же поведение события. Кроме того, я не в том месте, где я могу легко просматривать свои ссылки на дроидов, так что может существовать OnClickListener, специфичный для ImageButton - если это так, реализуйте это в вашем содержащем View или Activity для консолидации обработчиков ...

Надеюсь, что это имеет смысл - счастливое кодирование!

B

...