0
목록에서 성능을 위해 행을 재활용하는 방법을 알고 있습니다. 내가 주로 참조하는 것은 예를 들어 static
클래스와 태그 (viewHolder
)안드로이드에서리스트 행 뷰를 재활용하는 두 가지 기술의 차이점
를 사용하는 기술의 종류 :
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder = null;
if (convertView == null)
{
convertView = mInflater.inflate(R.id.row, null);
holder = new ViewHolder();
holder.txt1 = (TextView) convertView.findViewById(R.id.txt1);
holder.txt2 = (TextView) convertView.findViewById(R.id.txt2);
holder.txt3 = (TextView) convertView.findViewById(R.id.txt3);
// setting more images,images
convertView.setTag (holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.txt1.setText(data.get(position).txt1);
holder.txt2.setText(data.get(position).txt2);
holder.txt3.setText(data.get(position).txt3);
return convertView;
}
static class ViewHolder{
TextView txt1;
TextView txt2;
TextView txt3;
}
하지만 일부 코드에서 내가 static
클래스와 태그를 사용하지 않는 더 간단한 방법을 보았다
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = LayoutInflater.from(getActivity()).inflate(R.layout.history_row, null);
}
LinearLayout row = (LinearLayout) convertView.findViewById(R.id.row);
TextView txt1 = (TextView) convertView.findViewById(R.id.txt1);
txt1.setText(data.getTxt1());
TextView txt2 = (TextView) convertView.findViewById(R.id.txt1);
txt2.setText(data.getTxt2());
TextView txt3 = (TextView) convertView.findViewById(R.id.txt2);
txt3.setText(data.getTxt3());
}
무엇이 다른가요? 사용하는 것이 더 낫지 않으십니까?