0

メソッドと同様に機能するメソッドがあるかどうかを知りたいのですがonOptionsItemSelected、代わりにオプションメニュー項目をリッスンし、UI に実装されているすべてのボタンをリッスンします。

onOptionsItemSelected()方法 :

public boolean onOptionsItemSelected( MenuItem item ) {
    switch( item.getItemId() ) {
        case R.id.item1:
            if( currentPlayer == 1 ) {return true;}
                updateUI( 1 );
            return true;
        case R.id.item2:
            if( currentPlayer == 2 ) {return true;}
                updateUI( 2 );
            return true;
        case R.id.item3:
            if( currentPlayer == 3 ) {return true;}
                updateUI( 3 );
            return true;
        case R.id.item4:
            if( currentPlayer == 4 ) {return true;}
                updateUI( 4 );
            return true;
        default:
            return super.onContextItemSelected( item );
    }
}

現在、私はすべてのボタンにこの方法を使用することに行き詰まっており、ボタンが多すぎます。上記のように機能する方法を見つけることができれば、はるかにきれいになります。

public class MyActivity extends Activity {
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        setContentView(R.layout.content_layout_id);

        final Button button = (Button) findViewById(R.id.button_id);
        button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // Perform action on click
                }
        });
    }
}
4

2 に答える 2

2
public class MyActivity extends Activity implements OnClickListener{
 protected void onCreate(Bundle icicle) {
     super.onCreate(icicle);
     setContentView(R.layout.content_layout_id);

     final Button button = (Button) findViewById(R.id.button_id);
     button.setOnClickListener(this);

  //asign for othe  button if its btn1,btn2,btn3
     btn1.setOnClickListener(this);
     btn2.setOnClickListener(this);
     btn3.setOnClickListener(this);


 }

public void onClick(View v) {
 switch(v.getId() ) {
 case R.id.button_id:
     //put code here for button_id
 break;

 case R.id.button_id_1:
    break;

 default:
     break;
}      
   }
}
于 2012-07-30T18:08:15.530 に答える
1
View.OnClickListsner buttonListener = new View.OnClickListener() {
@Override
publiv oid onClick(View view) {
Swicth(view.getId()) {
your stuff like in your question 
}
}
}

そして、このリストナーを次のようにすべてのボタンに追加することを忘れないでください:

butoon1.setOnClickListener(buttonListsner);
button2.setOnClickListsner(buttonListsner);
于 2012-07-30T18:14:36.237 に答える