我有一個listview與複選框,每當用戶按下複選框我收到一些用戶信息(例如說facebook的個人資料ID) 並存儲在arraylist.Now是什麼問題是每當用戶滾動列表視圖一些其它的配置文件ID的也被添加或附加地eventhough除去它 不marked.so它提供Listview複選框數組索引出界限異常
數組索引出界的異常
我試圖理清問題但我無法做到這一點,請provi給我一些解決方案。
這裏是我的完整列表視圖
public class MyComposeListItemAdapter extends ArrayAdapter {
public Context mContext;
int row;
public List<MyComposeObject> arrayList;
public ImageLoader imageLoader;
private static LayoutInflater inflater=null;
/*
* Create an ArrayList of Boolean Object to store the state of the each CheckBox
* Initializes the ArrayList items to default value false, means no CheckBox is checked yet.
* When you click on CheckBox. Set a check against Checked/Unchecked state and store that value in ArrayList.
* Now set that position to CheckBox using setChecked() method.*/
private ArrayList<Boolean> itemChecked = new ArrayList<Boolean>();
// for radio button
private RadioButton mCurrentlyCheckedRB;
private boolean userSelected = false;
private int mResourceId = 0;
private RadioButton mSelectedRB;
private int mSelectedPosition = -1;//
public static List<String> selected_profileid =new ArrayList<String>();
public static List<String> selected_profiletype =new ArrayList<String>();
public MyComposeListItemAdapter(Context context, int resource) {
super(context, resource);
// TODO Auto-generated constructor stub
this.mContext = context;
this.row = resource;
arrayList = (ArrayList<MyComposeObject>) Woosuite_Login.composeObjectslist;
// System.out.println("arrayList2"+arrayList.size());
imageLoader=new ImageLoader(context);
for (int i = 0; i < this.getCount(); i++) {
itemChecked.add(i, false); // initializes all items value with false
}
}
@Override
public Context getContext() {
// TODO Auto-generated method stub
return mContext;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return arrayList.size();
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(row, null);
holder = new ViewHolder();
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.userimage_ImageView=(ImageView) convertView.findViewById(R.id.imageView666);
holder.username_TextView=(TextView) convertView.findViewById(R.id.textView666);
holder.checkBox=(CheckBox) convertView.findViewById(R.id.checkBox666);
holder.radioButton=(RadioButton) convertView.findViewById(R.id.radio666);
holder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked){
itemChecked.set(position, true);
selected_profileid.add(arrayList.get(position).getCom_profileId());
System.out.println("add selected_profileid "+selected_profileid);
selected_profiletype.add(arrayList.get(position).getCom_profileType());
System.out.println("add selected_profiletype.size(); "+selected_profiletype);
}else{
selected_profiletype.remove(arrayList.get(mposition).getCom_profileType());
System.out.println("remove selected_profileid "+selected_profileid);
selected_profileid.remove(arrayList.get(mposition).getCom_profileId());
System.out.println("remove selected_profiletype.size(); "+selected_profiletype);
}
}
});
if(arrayList.get(position).getCom_ProfileImgUrl()!=null){
imageLoader.DisplayImage(arrayList.get(position).getCom_ProfileImgUrl(), holder.userimage_ImageView);
}else{
holder.userimage_ImageView.setImageResource(R.drawable.fb);
}
if(arrayList.get(position).getCom_ProfileName()!=null){
holder.username_TextView.setText(arrayList.get(position).getCom_ProfileName());
}
holder.checkBox.setChecked(itemChecked.get(position));
return convertView;
}
private static class ViewHolder {
ImageView userimage_ImageView;
TextView username_TextView;
CheckBox checkBox;
RadioButton radioButton;
}
}
您將哪些方法添加到適配器滾動? – Apoorv
它已經知道了,請檢查它在布爾真正的部分 – Androidcuckoo
我想添加它的個人資料ID和配置文件類型,如果複選框被點擊並需要刪除相同的複選框未選中 – Androidcuckoo