0
첫 번째 단추를 클릭하면 한 단추 만 클릭하면 단추 배경이 잘 설정됩니다. 그러나 아래로 스크롤 할 때 문제는 더 많은 버튼이 그림과 같이 무작위로 바뀌 었음을 발견했습니다.안드로이드 : 목록보기 단추 텍스트 변경
그림 here을 참조하십시오. 코드의
부분 : - ContactSug_Adapter
public class ContactSug_Adapter extends ArrayAdapter {
List list = new ArrayList();
ImageLoader imgLoader = new ImageLoader(getContext());
private Context context;
public ContactSug_Adapter(Context context, int resource) {
super(context, resource);
}
@Override
public void add(Object object) {
super.add(object);
list.add(object);
}
@Override
public int getCount() {
return super.getCount();
}
@Override
public Object getItem(int position) {
return this.list.get(position);
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
View row;
row = convertView;
final ContactHolder contactHolder;
if (row == null) {
LayoutInflater layoutInflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflater.inflate(R.layout.row, parent, false);
contactHolder = new ContactHolder();
contactHolder.tx_id = (TextView) row.findViewById(R.id.usersName2);
contactHolder.tx_name = (TextView) row.findViewById(R.id.usersName);
contactHolder.sug_add = (Button) row.findViewById(R.id.sug_id);
row.setTag(contactHolder);
} else {
contactHolder = (ContactHolder) row.getTag();
}
final Contacts_Sug contacts = (Contacts_Sug) this.getItem(position);
contactHolder.image_tx.setImageResource(R.mipmap.ic_launcher);
contactHolder.tx_id.setText(contacts.getId());
contactHolder.tx_name.setText(contacts.getName());
contactHolder.sug_add.setTag(position);
contactHolder.sug_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
contactHolder.sug_add.setText("Selected");
}
});
return row;
}
public class ContactHolder {
TextView tx_id, tx_name,loadId;
ImageView image_tx;
public Button sug_add;
}/********* act
의 ListView가 아래로 스크롤 할 때 재사용되는 때문에'row'가 null되지 않습니다 그래서 때로는 자신의 견해를 재활용합니다. 이 경우'contactHolder = (ContactHolder) row.getTag(); '를 사용하여 이전 뷰에서'contactHolder'를 재사용하고 있습니다. 'position' 매개 변수를 사용하여 상태를 추적합니다 – TychoTheTaco