2013-04-10 11 views
5

カスタム配列アダプタを作成していますが、ビューのクリックを処理する関数を実装する必要があります。私は2つのオプションを念頭に置いていますが、パフォーマンス/作業速度などに違いがあるのだろうかと思います。主な活動からlistview.setOnItemClickListenerとrow.setOnClickListenerの相違点

row.setOnClickListener(new OnClickListener() { 

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


      } 
     }); 

オプション2::arrayAdapter自体で

オプション1、

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

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

      } 


     }); 

または彼らはまったく同じですか?

答えて

5

まったく同じですか?

最初のアプローチでは、各行に独自のリスナーe.q.を作成します。あなたは100行あるので、まったくうまくいかない100のリスナーがあります。 2番目の方法では、ListView全体に対して1つのリスナーを作成します。

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

どのように表示されるかは、まずListViewのようなアダプタウィジェットを扱うのがより快適で直接指定されています。また、このアプローチも一般に推奨され使用されています。

あなたはonItemClick()メソッドのパラメータを使用して各行に接続しています。コードは人間が読める形式であり、より明確です。

関連する問題