7

アンドロイド開発の観点から、あなたがプログラミングしている間、あなたはリスナーのためにどちらの方法を実装することを好みますか?または、読みやすいコードにはどちらの方法が最適だと思いますか?私はこれらのことについて2つの例を挙げましたが、複数のリスナーを持つクラスなど、より複雑なクラスを考えてみてください:)

匿名クラスである最初の例:

public class SenderReceiverActivity extends Activity {

Button cancelButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sending);
    cancelButton = (Button) findViewById(R.id.button1);
    cancelButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

        }
    });
}}

インターフェイスを実装している2番目の例:

public class SenderReceiverActivity extends Activity implements OnClickListener {

Button cancelButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sending);
    cancelButton = (Button) findViewById(R.id.button1);
    cancelButton.setOnClickListener(this);
}

public void onClick(View v) {

}
}
4

3 に答える 3

4

ボタンが1つしかない場合は、コードに複雑さがないため、最初のアプローチが適切です。you have many button then second is more clear ,just one onClick method for many buttons and check id of button using v.getId()

ただし、機能に変更はありません。どちらも同じです。

于 2012-05-30T06:53:27.313 に答える
3

2番目のアプローチは良いと思います

1-1つの場所で複数のビュークリックを処理できます...

2-コードを短くして読みやすくします。

3-メンテナンスが簡単です。

4-プロジェクトで基本アクティビティのような概念を使用している場合は、それも役立ちます。

于 2012-05-30T06:52:40.790 に答える
0

ええと、1つを除いて両方の間に実際には大きな違いはありません。2番目のケースonClick(View v)では、クラスの外部からメソッドにアクセスできます。

私の場合、最初のアプローチを好みます。これは、クリック時に同時に複数のコンポーネントが同じ動作をすることはめったにないためです。

于 2012-05-30T06:58:58.777 に答える