2011-01-20 9 views
3

外側のクラスまたは匿名クラスを使用する。これは、これは匿名クラスの例Androidのイベント:インタフェースを実装する場合、それはより良い

public class MyActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mylayout); 
     findViewById(R.id.myid).setOnClickListener(new OnClickListener() { 
      public void onClick(View v){...} 
     })); 
    } 
} 

答えて

5

パフォーマンスで外部クラスに

public class MyActivity extends Activity implements OnClickListener { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mylayout); 
     findViewById(R.id.myid).setOnClickListener(this)); 
    } 
    public void onClick(View v){...} 
} 

を使用した例です効率性はAndroidでもっと重要な考慮事項になります。ハーフベークされた最適化の作業であると考えられるものは、アンドロイドで意味をなさないことがあります(enumではなく、java int enum patternを使用してください)。だからあなたの質問への答えはです。

複数のonClickリスナーを登録する必要がある場合は、インターフェイスを実装し、その中にスイッチケースを使用します。

クリックリスナーに登録する必要がある場合は、匿名クラスを使用してください。 (Androidデベロッパーは可能な限り匿名のクラスを好むが、スコープを制限する))

関連する問題