0
チェックボックスがあるListView
を使用しています。チェックボックスをクリックしてスクロールすると、チェックボックスの状態が正しく機能していません。チェックボックスの状態が正しく動作しない
私は同様のStackOverflowを見てみましたquestion しかし、これらのソリューションは私のために働いていません。
private class CustomerEventsAdapter extends BaseAdapter {
private Context myContext;
private ArrayList<Events> myEventArrayList;
private LayoutInflater mInflater;
private Boolean isSelected = false;
public EventsAdapter(Context ctx, ArrayList<Events> theArrayListEvents) {
this.myContext = ctx;
this.myEventArrayList = theArrayListEvents;
mInflater = LayoutInflater.from(ctx);
}
@Override
public int getCount() {
return myEventArrayList.size();
}
@Override
public Object getItem(int i) {
return myEventArrayList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int i, View convertView, ViewGroup viewGroup) {
View view = convertView;
if (view == null) {
view = mInflater.inflate(R.layout.event_item_list, null);
final ViewHolder holder = new ViewHolder();
holder.myCheckBoxCustomerEventItem = (CheckBox) view.findViewById(R.id.checkBoxCustomerEventItem);
holder.myCheckBoxCustomerEventItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Events events = myEventArrayList.get(i);
//is chkIos checked?
if (((CheckBox) v).isChecked()) {
holder.myCheckBoxCustomerEventItem.setChecked(true);
eventsInfo.setMyIsSelected(true);
} else {
holder.myCheckBoxCustomerEventItem.setChecked(false);
eventsInfo.setMyIsSelected(false);
}
//case 2
}
});
view.setTag(holder);
}
if (view != null) {
ViewHolder holder = (ViewHolder) view.getTag();
Events eventsInfo = myEventArrayList.get(i);
boolean isChecked = eventsInfo.getMyIsSelected();
if (isChecked) {
holder.myCheckBoxCustomerEventItem.setChecked(true);
} else {
holder.myCheckBoxCustomerEventItem.setChecked(false);
}
}
return view;
}
}
ありがとう:
は、ここに私のAdapter
コードです。
.. –