'How to update all the children items of listview?

public class ListAdapter extends ArrayAdapter { Context context; // Main Context ArrayList data = new ArrayList(); // main textview data

/* Constructor */
public ListAdapter(Context context, ArrayList<String> dataItem) {
    super(context, R.layout.list_item, dataItem);
    this.data = dataItem;
    this.context = context;
}

/* Contains the all items */
public class ViewHolder {
    TextView text;
    CheckBox checkBox;
    TextView time;
}

/* Get the current item view */
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder viewHolder;
    if (convertView == null) {
        LayoutInflater inflater = LayoutInflater.from(context);
        convertView = inflater.inflate(R.layout.list_item, null);
        viewHolder = new ViewHolder();
        viewHolder.text = (TextView) convertView
                .findViewById(R.id.childTextView);
        viewHolder.checkBox = (CheckBox) convertView
                .findViewById(R.id.checkBox);
        viewHolder.checkBox.setVisibility(View.GONE);
        viewHolder.time = (TextView) convertView.findViewById(R.id.textTime);
        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }
    final String temp = getItem(position);
    viewHolder.text.setText(temp);

    viewHolder.checkBox.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (checkBoxClickListener != null) {
                checkBoxClickListener.onCheckBoxClickListener(position, temp);
            }

        }
    });
    return convertView;
}

CheckBoxClickListener checkBoxClickListener;

public interface CheckBoxClickListener {
    public void onCheckBoxClickListener(int position, String value);
}

public void setCheckBoxClickListener(CheckBoxClickListener listener) {
    this.checkBoxClickListener = listener;
}

}

This is my adapter. At first, checkboxes are invisible and after long clicking I wanna make the checkboxes visible.

In my mainactivity,

for(int i = 0; i < listView.getAdapter().getCount(); i++) {
View v = getViewByPosition(i, listView);
ListAdapter.ViewHolder view = (ListAdapter.ViewHolder) v.getTag();
view.checkBox.setVisibility(state);
}
adapter.notifyDataSetChanged();
listview.invalidateViews();

public View getViewByPosition(int pos, ListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

if (pos < firstListItemPosition || pos > lastListItemPosition ) {
    return listView.getAdapter().getView(pos, null, listView);
} else {
    final int childIndex = pos - firstListItemPosition;
    return listView.getChildAt(childIndex);
}

}

I tried like this, but checkboxes in unvisible items(by scrolling) are not visible yet.

Can anybody solve this problem to help me out?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source