我正在处理很长的列表,这些列表可以有4个以上的点击行查看。
(ListView中)
方法1:
列表视图中的公共视图getView()
vh.pprofile.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
JSONObject miid;
try {
miid = listArray.getJSONObject(position);
MyApp.goProfile(activity, false, miid.getString("user_id"), 1);
} catch (JSONException e) { }
}
});
方法2:
ListView公共视图中的getView()
vh.pprofile.setTag(position);
vh.pprofile.setOnClickListener(onClickListener);
在ListView类
中MyOnClickListener onClickListener = new MyOnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == vh.pprofile.getId()) {
JSONObject miid;
try {
miid = listArray.getJSONObject(Integer.valueOf(v.getTag().toString()));
MyApp.goProfile(activity, false, miid.getString("user_id"), 1);
} catch (JSONException e) { }
}
}
};
新课程:
public class MyOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {}
}
答案 0 :(得分:1)
没有。你所比较的是没有性能差异。这两种选择都不会导致内存泄漏。只有在比较创建多个匿名单击侦听器(多次选项1)以及为不同视图重用特定单击侦听器(带有switch语句的选项2)时,才会出现性能差异。请参阅my explanation here中的详细信息。