For the record, since it's always good to post solutions (albeit three 
months later)...

The only way I ever got this to work in the end was to use my own custom 
row layout and inflate that in getView(), rather than using 
android.R.layout.simple_list_item_multiple_choice. Everything worked just 
the way I'd expected it to all along when I did that, including the 
ListView updating instantly and correctly whenever I changed the data via 
the ArrayAdapter, and notifyDatasetChanged() doing likewise when I was 
changing the data directly.

--Calum.

On Friday, November 25, 2011 12:41:43 AM UTC, scottishwildcat wrote:
>
> Hi Jon... thanks for the reply. Thought you might have been onto something 
> there, as I wasn't storing the ArrayList that was passed into the 
> ShoppingListAdapter constructor at all -- I was just directly accessing the 
> one defined in the parent activity, as you noticed. So now my adapter 
> constructor looks like:
>
> public class ShoppingListAdapter extends ArrayAdapter<ShoppingListItem>{
>
>
> private ArrayList<ShoppingListItem> itemList;
>
>
> public ShoppingListAdapter(Context c, int layoutId, 
> ArrayList<ShoppingListItem> itemList){
>
> super(c, layoutId, itemList);
>
> this.itemList = itemList;
>
> }
>
>
> Unfortunately, having rectified that, and tried replacing the lines you 
> suggested with both:
>
>     rowView.setText(itemList.get(position).getName());
>     rowView.setChecked(itemList.get(position).isChecked());
>
>
> and
>
>
>     rowView.setText(getItem(position).getName());
>
>     rowView.setText(getItem(position).isChecked());
>
>
> the behavior appears to be exactly the same as my original version in both 
> cases. (Your suggestion doesn't work verbatim, as getItem is not defined on 
> itemList).
>
> I guessed the checkbox issue might be something to do with view recycling 
> too, but I've tried both working with the recycled convertView when 
> available, and just inflating a new view every time regardless, and that 
> doesn't seem to make any difference either...
>
> Cheers,
> Calum.
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to