사용자 지정 ListViewAdapter를 사용하여 목록을 표시하고 있습니다. 목록의 각 행에는 3 개의 버튼, 즉 연결된 리스너가 있습니다. 그러나 각 스크롤 중에 convertView가 존재하는 행에 대해서도 null이 아닌 값으로 새로운 OnClickListeners가 작성되는 것이 매우 불안합니다. 작성하고 멀리 던지는 것 같다 -ListViewAdapter -보기에 연결된 청취자가 수집되는 경우?
가public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.listview_item, parent, false);
} else {
view = convertView;
}
final TextView textView = (TextView) view.findViewById(R.id.txtProduct);
textView.setText(name);
textView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
...
}
});
... two more listeners, with the same approach
return view;
자바, 스파이더 의미 "팅-A-lings"내 경험에 따라 : 내가 이해
// 가장 일반적인 방법은보기를 변환하는 동일한 청취자 접근법은 가비지 수집가 학대입니다. 오래된 청취자가 언제 수집되었는지 확신 할 수 없습니다 ...
새 청취자를 사용하는 대신 기존 청취자를 사용할 방법이 있습니까? (어떤 종류의 캐시 데이터 구조)
따라서 행은 클릭 가능한 리스너가되며 convertView도 리스너를 재사용합니다. 아름답고 우아한 솔루션 :) 하지만, 내가 찾고있는 것은 3 개의 리스너가있는 행입니다. 각기 다르게 동작하므로 onClick 구현은 문제를 해결하지 못합니다. – firluk