5

カスタム配列アダプターを作成しています。ビューのクリックを処理する関数を実装したいと考えています。2つの選択肢を考えているのですが、パフォーマンスや動作速度などに違いがあるのでしょうか?

オプション 1、arrayAdapter 自体:

row.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


            }
        });

オプション 2、メイン アクティビティから:

listView.setAdapter(adapter);
        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub

            }


        });

それともまったく同じですか?

4

1 に答える 1

5

それともまったく同じですか?

最初のアプローチでは、行ごとに独自のリスナー eq を作成します。100 行あるため、100 個のリスナーがあり、まったく良くありません。2 番目のアプローチでは、ListView 全体に対して 1 つのリスナーを作成します。

android.widget.AdapterView.OnItemClickListener
android.view.View.OnClickListener

ご覧のとおり、最初のほうがより快適で、ListView のようなアダプター ウィジェットを直接処理するように指定されています。また、このアプローチは一般的に推奨され、使用されています。

onItemClick() メソッドのパラメーターを介して各行に接続し、コードは人間が読みやすく、より明確になります。

于 2013-04-10T21:02:25.563 に答える