android列表勾选框,如何从android中的活动中选择自定义列表视图中的所有复选框...

我有一个自定义列表视图,其中包含两个textview和一个复选框.选中复选框后,id将存储在数据库中,如果未选中,则会从数据库中删除id.但我想选择所有复选框并将所有ID存储到数据库中或取消选中所有复选框并从数据库中删除所有ID.究竟我必须为此实现什么.请帮帮我这是我的适配器代码

public class InviteListAdapter2 extends BaseAdapter implements OnClickListener {

private static final String TAG = "GroupEditMemberListAdapter";

private LayoutInflater inflater;

private ViewHolder holder;

private List list;

private Context context;

private ImageLoader imageLoader;

MessageSendingActivity msg = new MessageSendingActivity();

private String groupId;

SqliteHandle sqhandle;

//private String adminId;

int total_contacts=0;

String f_id;

int flag=0;

String chetimeslot;

ArrayList currentList = new ArrayList();

public static final String DELETE_MEMBER = "2";

public static final String ADD_MEMBER = "1";

public InviteListAdapter2(Context context, List list, String groupId, String adminId) {

this.context = context;

inflater = LayoutInflater.from(context);

this.list = list;

imageLoader = new ImageLoader(context);

this.groupId = groupId;

//this.adminId = adminId;

}

public ArrayList getChekedItem()

{

if(currentList!=null)

return this.currentList;

else return null;

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return list.indexOf(getItem(position));

}

public void refresh(List list) {

this.list = list;

notifyDataSetChanged();

}

public List getList() {

return list;

}

View hView;

ArrayList checkbox_timeslot = new ArrayList();

@Override

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

hView = convertView;

final FriendItem item = list.get(position);

if (convertView == null) {

holder = new ViewHolder();

hView = inflater.inflate(R.layout.friendlistitem, null);

holder.nameTextView = (TextView) hView.findViewById(R.id.friend_name_text);

holder.statusTextView = (TextView) hView.findViewById(R.id.friend_count_text);

holder.userImageView = (ImageView) hView.findViewById(R.id.friend_image);

holder.checkBox = (CheckBox) hView.findViewById(R.id.chekbox);

hView.setTag(holder);

}

else {

holder = (ViewHolder) hView.getTag();

}

try {

holder.nameTextView.setText(""+item.getName() + " " +item.getLname());

holder.statusTextView.setText(""+item.getContacts());

String path = "http://www.gbggoa.org/testproject/four/images/pic.jpg";

path = Constant.URL + item.getImage();

imageLoader.displayImage(path, holder.userImageView);

if(item.getId().equals(Sessions.getUserId(context)))

{

holder.checkBox.setVisibility(View.GONE);

}

else

{

holder.checkBox.setVisibility(View.VISIBLE);

}

if(item.isChecked())

{

holder.checkBox.setChecked(true);

if(item.getId().equals(Sessions.getUserId(context)))

{

hView.setBackgroundResource(R.drawable.selector_list_gray);

}

else

{

hView.setBackgroundResource(R.drawable.selector_list_green);

}

}

else

{

holder.checkBox.setChecked(false);

hView.setBackgroundResource(R.drawable.selector_list);

}

holder.checkBox.setTag(position);

holder.checkBox.setOnClickListener(this);

} catch (Exception e) {

e.printStackTrace();

}

return hView;

}

class ViewHolder

{

TextView nameTextView, statusTextView;

ImageView userImageView;

CheckBox checkBox;

}

protected void showToast(String message) {

Toast.makeText(context, ""+message, Toast.LENGTH_SHORT).show();

}

protected void showToastLong(String message) {

Toast.makeText(context, ""+message, Toast.LENGTH_LONG).show();

}

@Override

public void onClick(View view) {

final int position = (Integer) view.getTag();

String f_id=list.get(position).getId();

final CheckBox checkBox = (CheckBox) view.findViewById(R.id.chekbox);

sqhandle=new SqliteHandle(context);

final boolean isChecked = checkBox.isChecked();

int total=sqhandle.getCheckedCount();

checkBox.setVisibility(View.GONE);

if(isChecked)

{

total_contacts = total_contacts + Integer.parseInt(list.get(position).getContacts());

sqhandle.changeCheck("1", f_id);

Toast.makeText(context, "Selected Contacts: "+total_contacts, Toast.LENGTH_LONG).show();

}

else

{

sqhandle.changeCheck("0", f_id);

total_contacts = total_contacts - Integer.parseInt(list.get(position).getContacts());

Toast.makeText(context, "Selected Contacts: "+total_contacts, Toast.LENGTH_LONG).show();

}

sqhandle.close();

checkBox.setVisibility(View.VISIBLE);

list.get(position).setChecked(isChecked);

notifyDataSetChanged();

}

}

解决方法:

使用ArrayList存储您的Items ID

ArrayList tcontact = new ArrayList();

if(isChecked)

{

tcontact.add(Integer.parseInt(list.get(position).getContacts()))

sqhandle.changeCheck("1", f_id);

Toast.makeText(context, "Selected Contacts: "+total_contacts, Toast.LENGTH_LONG).show();

}

else

{

for(int i=0;i

if(tcontact.get(i) == Integer.parseInt(list.get(position).getContacts())) {

tcontact.remove(i);

sqhandle.changeCheck("0", f_id);

Toast.makeText(context, "Selected Contacts: "+total_contacts, Toast.LENGTH_LONG).show();

}

}}

标签:checkbox,android,custom-lists

来源: https://codeday.me/bug/20190609/1207449.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值