listview.setOnItemClickListener和row.setOnClickListener的区别

时间:2013-04-10 20:54:01

标签: android listview onclick android-arrayadapter

我正在创建一个自定义数组适配器,我现在想要实现一个处理单击视图的函数。我有两个选择,但我想知道性能/工作速度是否存在差异?

选项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

            }


        });

或者它们完全相同?

1 个答案:

答案 0 :(得分:5)

  

或者它们完全相同?

在第一种方法中,您将为每一行创建自己的侦听器e.q.你有100行,所以你将有100个听力不完美的听众。在第二种方法中,您将为整个ListView创建一个侦听器。

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

你怎么看,首先是更舒服,直接指定处理像ListView这样的适配器小部件。通常也建议使用这种方法。

您通过onItemClick()方法的参数连接每一行,代码更易于阅读,而且更清晰。