2011-07-25 5 views
0

私は本を介して学習していますので、この初心者の質問を許してください。Android、イメージボタンの束

私はここに、私の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_clicked1を入力してください(上記の例ではxmlコード)

または別に行う必要がありますか?

答えて

2

種類 - 私のやりたいことは、自分のビューまたはアクティビティに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があるかもしれません。もしそうなら、それをあなたの含むビューやアクティビティに実装して、ハンドラを統合してください...

希望それは意味をなさない - 幸せなコーディング!

b

+0

ええ、私もこれが最良の選択だと思います。 –

+0

これは、代わりに '((ImageButton)findViewById(R.id.imageButton1))の束を持たなければならないことを意味します。setOnClickListener(this);' – Ryan

+0

まったく無意識に、はい。私はハンドラを割り当てる他の方法(例えば、宣言的に)を知らない。 – Brian

関連する問題