我面临的问题是查看列表视图的已检查项目,如果用户想要将已检查项目修改为其他项目,则可以修改复选框。修改后,他再次想要查看我在列表中查看的内容。我的代码无法正常查看他检查的内容。请帮忙,非常感谢
这是我的适配器类:
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) ;
}
}
};
}