【问题标题】:How to remove objects from POJO class inside listview getview method如何从 listview getview 方法中的 POJO 类中删除对象
【发布时间】:2014-02-27 19:47:15
【问题描述】:

在我的列表视图中,当用户单击复选框时,我有复选框,然后值将添加到数组列表(POJO 类)中,问题是当用户取消选中复选框时,必须立即从列表中删除值它没有发生,请建议我

这是我的适配器类

public class MyComposeListItemAdapter extends ArrayAdapter {

public Context mContext;
int row;
public List<MyComposeObject> arrayList;     
public ImageLoader imageLoader;     
private static LayoutInflater inflater=null;    

public static List<SelectedFriendsObject> selectedfriends = new ArrayList<SelectedFriendsObject>();
SelectedFriendsObject friendsObject=new SelectedFriendsObject();

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

}   
@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.checkBox=(CheckBox) convertView.findViewById(R.id.checkBox666);

        holder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub

                if(isChecked){                                                                  
                    itemChecked.set(position, true);

                        friendsObject.setProfile_type(arrayList.get(position).getCom_profileType());
                        friendsObject.setSelected_id(arrayList.get(position).getCom_profileId());
                        selectedfriends.add(friendsObject);

                }else{

                    // when ever control comes here i need to remove the values contained in that list, 

                }
            }
        });     

    return convertView;
}

private static class ViewHolder {
    CheckBox checkBox;
}

}

【问题讨论】:

  • 您需要从列表中删除项目,然后在您的适配器上调用notifyDataSetChanged 以刷新列表视图
  • 感谢回复,能否提供一些示例代码
  • @Raghunandan 你能指出我的错误吗,在这里:stackoverflow.com/questions/30047959/…

标签: android


【解决方案1】:

在 holder.checkBox.setOnCheckedChangeListener 的 else 部分,您可以从 arraylist 中删除该项目,然后使用。

adapterObj.notifyDataSetChanged();

【讨论】:

  • 你能提供一些示例代码吗,我对如何删除有点困惑
  • 你可以使用arrayList.remove(inedx)这里index是你要删除的那个item的位置,然后使用adapterObj.notifyDataSetChanged();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
  • 2018-03-31
相关资源
最近更新 更多