為什么第一種方法還是會復用的呢
public View getView(final int position, View convertView, ViewGroup parent) {
? ?final ViewHolder viewHolder;
? ?if (convertView == null) {
? ? ? ?convertView = LayoutInflater.from(context).inflate(R.layout.item, null);
? ? ? ?viewHolder = new ViewHolder();
? ? ? ?viewHolder.checkBox = (CheckBox) convertView.findViewById(R.id.checkBok);
? ? ? ?viewHolder.image = (ImageView) convertView.findViewById(R.id.image);
? ? ? ?convertView.setTag(viewHolder);
? ?} else {
? ? ? ?viewHolder = (ViewHolder) convertView.getTag();
? ?}
? ?
? ?final CheckBox checkBox = viewHolder.checkBox;
? ?
? ?checkBox.setChecked(data.isFlgs());
? ?viewHolder.checkBox.setOnClickListener(new View.OnClickListener() {
? ? ? ?@Override
? ? ? ?public void onClick(View v) {
? ? ? ? ? ?data.setFlgs(viewHolder.checkBox.isChecked());
? ? ? ?}
? ?});
? ?return convertView;
}
2016-12-18
你的數據從ViewHolder中拿?你應該通過BaseAdapter的getItem()
2015-12-27
是由系統自動重復的調用,內部你得去看這個類的代碼