jeudi 3 mars 2016

How can i check and uncheck checkbox using android studio?

I have a custom adapter class named "SelectUserAdapter" for inflating a listview with phone contacts, image, phone number and a checkbox. The problem is I can't check or uncheck the checkbox. Here is the code:

    package com.trendsetter.vyshnav.vyshnavgetcontact;
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Build;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.CheckBox;
    import android.widget.ImageView;
    import android.widget.TextView;

    import com.trendsetter.vyshnav.vyshnavgetcontact.R;


    import java.util.ArrayList;
    import java.util.List;
    import java.util.Locale;


    class SelectUserAdapter extends BaseAdapter {

    public List<SelectUser> _data;
    private ArrayList<SelectUser> arraylist;
    Context _c;
    ViewHolder v;


    public SelectUserAdapter( Context context, List<SelectUser> selectUsers)       
    {
    _data = selectUsers;
    _c = context;
    this.arraylist = new ArrayList<SelectUser>();
    this.arraylist.addAll(_data);
    }

    @Override
    public int getCount() {
    return _data.size();
    }

    @Override
    public Object getItem(int i) {
    return _data.get(i);
    }

    @Override
    public long getItemId(int i) {
    return i;
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public View getView(int i, View convertView, ViewGroup viewGroup) {
    View view = convertView;
    if (view == null) {
        LayoutInflater li = (LayoutInflater)    
    _c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = li.inflate(R.layout.contact_info, null);
        Log.e("Inside", "here--------------------------- In view1");
    } else {
        view = convertView;
        Log.e("Inside", "here--------------------------- In view2");
    }

    v = new ViewHolder();

    v.title = (TextView) view.findViewById(R.id.name);
    v.check = (CheckBox) view.findViewById(R.id.check);
    v.phone = (TextView) view.findViewById(R.id.no);
    v.imageView = (ImageView) view.findViewById(R.id.pic);

    final SelectUser data = (SelectUser) _data.get(i);
    v.title.setText(data.getName());
    v.check.setChecked(data.getCheckedBox());
    v.phone.setText(data.getPhone());

    // Set image if exists
    try {

        if (data.getThumb() != null) {
            v.imageView.setImageBitmap(data.getThumb());
        } else {
            v.imageView.setImageResource(R.drawable.image);
        }
        // Setting round image
        Bitmap bm = BitmapFactory.decodeResource(view.getResources(),  
      R.drawable.image); // Load default image

        v.imageView.setImageBitmap(bm);
      } catch (OutOfMemoryError e) {
        // Add default picture
        v.imageView.setImageDrawable(this._c.getDrawable(R.drawable.image));
        e.printStackTrace();
      }

       Log.e("Image Thumb", "--------------" + data.getThumb());

      // Set check box listener android
      v.check.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            CheckBox checkBox = (CheckBox) view;
            if (checkBox.isChecked()) {
                data.setCheckedBox(true);
              } else {
                data.setCheckedBox(false);
            }
        }
      });

     view.setTag(data);
       return view;
     }

     // Filter Class
      public void filter(String charText) {
     charText = charText.toLowerCase(Locale.getDefault());
     _data.clear();
     if (charText.length() == 0) {
        _data.addAll(arraylist);
     } else {
        for (SelectUser wp : arraylist) {
            if (wp.getName().toLowerCase(Locale.getDefault())
                    .contains(charText)) {
                _data.add(wp);
            }
        }
    }
    notifyDataSetChanged();
    }
    static class ViewHolder {
    ImageView imageView;
    TextView title, phone;
    CheckBox check;
    }
    }

How do I successfully check the checkbox?




Aucun commentaire:

Enregistrer un commentaire