5

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

选项 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 个根本不好的侦听器。在第二种方法中,您将为整个 ListView 创建一个侦听器。

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

你怎么看,首先是更舒适和直接指定用于处理像 ListView 这样的适配器小部件。此外,通常推荐和使用这种方法。

您可以通过 onItemClick() 方法的参数与每一行建立联系,并且代码更易于阅读,也更清晰。

于 2013-04-10T21:02:25.563 回答