【发布时间】:2019-06-14 13:12:29
【问题描述】:
在自定义适配器的点击事件处理中,更好(考虑性能和内存),1)在ListView级别定义点击处理程序。 2) 在自定义适配器中定义一个点击处理程序。
在自定义适配器级别定义点击处理程序会增加内存消耗吗? 下面是一些示例伪代码。
//在列表级别定义点击处理程序
layoutNotificationViewHolder.mNotificationListLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final SampleItem selectedItem = itemList.get(position);
Intent itemInfoIntent = new Intent(context, itemMoreInfoActivity.class);
itemInfoIntent.putExtra("selected_item", selectedItem);
context.startActivity(itemInfoIntent);
}
});
//在适配器内部定义点击处理程序。
public View getView(final int position, View convertView, ViewGroup parent) {
final SampleItem selectedItem = itemList.get(position);
convertView.mCameraIv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent itemInfoIntent = new Intent(context, itemMoreInfoActivity.class);
itemInfoIntent.putExtra("selected_item", selectedItem);
context.startActivity(itemInfoIntent);
}
});
}
【问题讨论】:
-
considering performance and memory为什么你认为在某个地方写代码会影响性能?我更喜欢在适配器中编写点击代码,因为它易于阅读和维护。据我所知,在您定义的业务逻辑没有复杂性(循环)并依次影响性能之前,不会对性能产生任何影响。
标签: android listview android-adapter android-event