0

複雑さの点で何が優れているかを知る必要があります。次のように、ボタンごとに xml から個別の onClick メソッドを識別します。

android:onClick:"clickHandler"

そしてJavaコード:

public void clickHandler(View v){ 
         Button b = (Button) v;
         //do something for that button
      };

、またはすべてのボタンに対して 1 つのメソッドを識別し、if 条件でそれらを分離します。

Public void clickHandler(View v){
      Button b = (Button) v; 
      if(b.getText().equals("a")){
      }
         elseif(b.getText().equals("b")){
            }
       //And so on.
    }

私は複雑さの計算などは得意ではありませんが、この質問はイライラするだけで、答えられません。しかし、私が理解していることは、最初の方法ではコード行が大幅に増加することです!

4

2 に答える 2

1

私は一般的に後者が好きです。ただし、私は次のようなことをする傾向があります。

public void onClick(View v){
   switch(v.getId()){
      case R.id.button_a:
        //do button a logic here
        break;
      case R.id.button_b:
        //do button b logic here
        break;
   }
}

単純な添付ファイルActivity implement View.OnClickListenerよりも作成することを検討してくださいOnCreate()findViewById(R.id.button_a).setOnClickListener(this);

于 2012-07-10T20:29:03.620 に答える
1

2 番目のオプションのバージョンを使用します。ハンドラーを 1 つ作成し、switch ステートメントを使用して、イベントを受け取ったビューを特定します。コード効率が高く、まったく面倒ではありません。また、その属性をxmlにリストする必要はありません...個人的には、アクティビティでViewById()を見つけてonClickListenerを実装する方がはるかに簡単だと思います。次に、switch ステートメントで各ボタンの ID を使用できます。

于 2012-07-10T20:27:55.220 に答える