Hi Chander,

I wish if i could help with the whole source. The problem is the design.

let me tell you the real approach.

1. create a model class which holds the data that is name and checkbox with
setters and getters. below is the example

/** Holds Music data. */
private static class Music {
private String name = "";
private boolean checked = false;

public Music() {
}

  have the setters and getters for name and checked

2.Create a View adapter class which holds the child view data. below is the
example

private static class MusicViewHolder {
private CheckBox checkBox;
private TextView textView;

public MusicViewHolder() {
}

public MusicViewHolder(TextView textView, CheckBox checkBox) {
this.checkBox = checkBox;
this.textView = textView;
}

public CheckBox getCheckBox() {
return checkBox;
}

public void setCheckBox(CheckBox checkBox) {
this.checkBox = checkBox;
}

public TextView getTextView() {
return textView;
}

public void setTextView(TextView textView) {
this.textView = textView;
}
}


3. your custom adapter  which actally extends the Arrayadapter should be
like this

/** Custom adapter for displaying an array of Music objects. */
private static class MusicArrayAdapter extends ArrayAdapter<Music> {

private LayoutInflater inflater;

public MusicArrayAdapter(Context context, List<Music> musicList) {
super(context, R.layout.simplerow, R.id.rowTextView, musicList);
// Cache the LayoutInflate to avoid asking for a new one each time.
inflater = LayoutInflater.from(context);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Music to display
Music music = (Music) this.getItem(position);

// The child views in each row.
CheckBox checkBox;
TextView textView;

// Create a new row view
if (convertView == null) {
convertView = inflater.inflate(R.layout.simplerow, null);

// Find the child views.
textView = (TextView) convertView
.findViewById(R.id.rowTextView);
textView.setTextColor(Color.BLACK);
checkBox = (CheckBox) convertView.findViewById(R.id.CheckBox01);

 convertView.setTag(new MusicViewHolder(textView, checkBox));

 checkBox.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
Music music = (Music) cb.getTag();
music.setChecked(cb.isChecked());
}
});
}
 else {
 MusicViewHolder viewHolder = (MusicViewHolder) convertView
.getTag();
checkBox = viewHolder.getCheckBox();
textView = viewHolder.getTextView();
}

 checkBox.setTag(music);

 checkBox.setChecked(music.isChecked());
textView.setText(music.getName());

return convertView;
}

}


4.finally your setItemclicklisteners should be

Music music = listAdapter.getItem(position);
music.toggleChecked();
MusicViewHolder viewHolder = (MusicViewHolder) item
.getTag();
viewHolder.getCheckBox().setChecked(music.isChecked());



That's it. as i said, i have done this earlier, it requries the whole
process. bascially you need to create and store the data in private Music[]
musiclistarray;


Warm Regards,
*Mukesh Kumar*,
Android Consultant/Freelancer,
India,Hyderabad.

On Wed, Jan 11, 2012 at 12:11 PM, chander <mohan.c...@gmail.com> wrote:

> Hi all,
>
> In my application, i created a custom file adapter and i am using
> ListView with checkboxes, upto this point everything working great.
> But now i have to take the values of Checked listView items in an
> Array list. In my list view, i am listing Files present on the SD card
> so i have to take Files for further processing by storing it in an
> Array List.
>
> I am confused here how i pass multiple files for the processing, can
> someone help me in how i pass checked Files to further processing, or
> do i need to change my FileAdapter also ?
>
> My Adapter class code :--
>
> public class FileAdapter extends ArrayAdapter<File>
> {
>  Context context;
>  File[] files;
>  CheckBox Check;
>
>
>  public FileAdapter(Context context, File[] files)
>  {
>    super(context, -1, files);
>    this.context = context;
>    this.files = files;
>
>
>  }
>
>
> Thanks
>
> --
> 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




--

-- 
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