设置已经检查的问题加载并再次更新

时间:2014-12-19 05:46:56

标签: android listview checkbox

我面临的问题是查看列表视图的已检查项目,如果用户想要将已检查项目修改为其他项目,则可以修改复选框。修改后,他再次想要查看我在列表中查看的内容。我的代码无法正常查看他检查的内容。请帮忙,非常感谢

这是我的适配器类:

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

import android.app.Activity;
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.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;

import com.kns.model.CategoryModel;
import com.sunil.selectmutiple.R;

public class CategoryAdapter extends BaseAdapter{

    private final List<CategoryModel> list;
    private final Activity context;
    private LayoutInflater mInflater=null;
    ArrayList<CategoryModel> list1 = new ArrayList<CategoryModel>();
    private static final String TAG="CategoryAdapter";
    String catid1; 
    String catid2; 
    String catid3;

    public CategoryAdapter(Activity context, List<CategoryModel> list, String catid1, String catid2, String catid3) {
        // super(context, R.layout.listcheck, list);
        mInflater = context.getLayoutInflater();
        this.context = context;
        this.list = list;
        this.catid1=catid1;
        this.catid2=catid2;
        this.catid3=catid3;
    }

    @Override
    public int getCount() {

        return list.size();
    }

    @Override
    public Object getItem(int arg0) {

        return list.get(arg0);
    }

    @Override
    public long getItemId(int arg0) {

        return arg0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {


         View view = convertView;
         if (view == null) {
             view = mInflater.inflate(R.layout.cate_list_item, parent, false);
            }

          CategoryModel p = getProduct(position);
          TextView  text = (TextView) view.findViewById(R.id.textView_custname);
          CheckBox  checkbox = (CheckBox) view.findViewById(R.id.checkBox1);
          checkbox.setOnCheckedChangeListener(myCheckChangList);
          checkbox.setTag(position);

          String catid=p.getCat_id();
          Log.v(TAG, "Cat id is: "+catid);
          Log.v(TAG, "Cat id1 is: "+catid1);
          Log.v(TAG, "Cat id2 is: "+catid2);
          Log.v(TAG, "Cat id3 is: "+catid3);

          if (catid1.trim().equalsIgnoreCase("0") && catid2.trim().equalsIgnoreCase("0") && catid3.trim().equalsIgnoreCase("0")) {

              checkbox.setChecked(p.isIsselected());
          }
          else{

              if (catid.trim().equalsIgnoreCase(catid1)) {

                  checkbox.setChecked(true);
                 // getProduct((Integer) checkbox.getTag()).setIsselected(true) ;

               }
              else if (catid.trim().equalsIgnoreCase(catid2)) {

                  checkbox.setChecked(true);
                 // getProduct((Integer) checkbox.getTag()).setIsselected(true) ;
              }
              else if (catid.trim().equalsIgnoreCase(catid3)) {

                  checkbox.setChecked(true);
                 // getProduct((Integer) checkbox.getTag()).setIsselected(true) ;
                }
              else{
                  checkbox.setChecked(false);
              }
          }

          text.setText(p.getCat_name());


         // checkbox.setChecked(p.isIsselected());

        return view;
    }

    CategoryModel getProduct(int position) {
            return ((CategoryModel) getItem(position));
        }

        public ArrayList<CategoryModel> getChecked() {
            ArrayList<CategoryModel> list1 = new ArrayList<CategoryModel>();
            for (CategoryModel details : list) {
                if (details.isIsselected())
                    list1.add(details);
            }
            return list1;
        }


        OnCheckedChangeListener myCheckChangList = new OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                ArrayList<CategoryModel> list1=getChecked();
                Log.v(TAG, "checked size is: "+list1.size());

                if (isChecked) {

                    if (list1.size() >= 3) {

                         buttonView.setChecked(false);
                         //getProduct((Integer) buttonView.getTag()).setIsselected(isChecked) ;

                         Toast.makeText(context, "Please select max 3 Categories.", Toast.LENGTH_LONG).show();
                    }
                    else{

                        getProduct((Integer) buttonView.getTag()).setIsselected(isChecked) ;

                    }


                }
                else{
                    getProduct((Integer) buttonView.getTag()).setIsselected(isChecked) ;
                }

            }
        };

}

0 个答案:

没有答案