Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从android中的活动中选择自定义listview中的所有复选框_Android_Checkbox_Custom Lists - Fatal编程技术网

如何从android中的活动中选择自定义listview中的所有复选框

如何从android中的活动中选择自定义listview中的所有复选框,android,checkbox,custom-lists,Android,Checkbox,Custom Lists,我有一个自定义列表视图,其中包含两个文本视图和一个复选框。选中复选框后,id将存储在数据库中,如果未选中,则id将从数据库中删除。但我希望选中所有复选框并将所有ID存储到数据库中,或者取消选中所有复选框并从数据库中删除所有ID。我必须为此实施什么。请帮我这是我的适配器代码 public class InviteListAdapter2 extends BaseAdapter implements OnClickListener { private static final String TAG

我有一个自定义列表视图,其中包含两个文本视图和一个复选框。选中复选框后,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<FriendItem> 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<String> currentList = new ArrayList<String>();
public static final String DELETE_MEMBER = "2";
public static final String ADD_MEMBER = "1";

public InviteListAdapter2(Context context, List<FriendItem> 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<String> 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<FriendItem> list) {
    this.list = list;
    notifyDataSetChanged();
}

public List<FriendItem> getList() {
    return list;
}

View hView;

ArrayList<CheckedItem> checkbox_timeslot = new ArrayList<CheckedItem>();
@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();

}


}   
公共类InviteListAdapter2扩展BaseAdapter实现OnClickListener{
私有静态最终字符串标记=“GroupEditMemberListAdapter”;
私人充气机;
私人持票人;
私人名单;
私人语境;
私有图像加载器;
MessageSendingActivity msg=新建MessageSendingActivity();
私有字符串groupId;
SqliteHandle-sqhandle;
//私有字符串adminId;
int total_触点=0;
字符串f_id;
int标志=0;
字符串时隙;
ArrayList currentList=新的ArrayList();
公共静态最终字符串DELETE_MEMBER=“2”;
公共静态最终字符串ADD_MEMBER=“1”;
public InviteListAdapter2(上下文上下文、列表、字符串groupId、字符串adminId){
this.context=上下文;
充气器=充气器。从(上下文);
this.list=列表;
imageLoader=新的imageLoader(上下文);
this.groupId=groupId;
//this.adminId=adminId;
}   
公共数组列表getChekedItem()
{
如果(currentList!=null)
返回此.currentList;
否则返回null;
}
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共对象getItem(int位置){
返回列表。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回列表.indexOf(getItem(position));
}
公共作废刷新(列表){
this.list=列表;
notifyDataSetChanged();
}
公共列表getList(){
退货清单;
}
视图视图;
ArrayList复选框_timeslot=新建ArrayList();
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
hView=转换视图;
final FriendItem=list.get(位置);
if(convertView==null){
holder=新的ViewHolder();
hView=充气机。充气(R.layout.friendlistitem,null);
holder.nameTextView=(TextView)hView.findViewById(R.id.friend\u name\u text);
holder.statusTextView=(TextView)hView.findViewById(R.id.friend\u count\u text);
holder.userImageView=(ImageView)hView.findViewById(R.id.friend\u image);
holder.checkBox=(checkBox)hView.findViewById(R.id.chekbox);
hView.setTag(支架);
}
否则{
holder=(ViewHolder)hView.getTag();
}
试一试{
holder.nameTextView.setText(“+item.getName()+”+item.getLname());
holder.statusTextView.setText(“+item.getContacts());
字符串路径=”http://www.gbggoa.org/testproject/four/images/pic.jpg";
path=Constant.URL+item.getImage();
imageLoader.displayImage(路径,holder.userImageView);
if(item.getId().equals(Sessions.getUserId(context)))
{
holder.checkBox.setVisibility(View.GONE);
}
其他的
{
holder.checkBox.setVisibility(View.VISIBLE);
}
如果(item.isChecked())
{
holder.checkBox.setChecked(true);
if(item.getId().equals(Sessions.getUserId(context)))
{
hView.setBackgroundResource(R.drawable.selector\u list\u gray);
}
其他的
{
hView.setBackgroundResource(R.drawable.selector_list_green);
}
}
其他的
{
holder.checkBox.setChecked(false);
hView.setBackgroundResource(R.drawable.selector_列表);
}   
holder.checkBox.setTag(位置);
holder.checkBox.setOnClickListener(此);
}捕获(例外e){
e、 printStackTrace();
}
返回hView;
}   
类视图持有者
{   
文本视图名称文本视图、状态文本视图;
ImageView用户ImageView;
复选框;
}
受保护的void showtoos(字符串消息){
Toast.makeText(上下文“+”消息,Toast.LENGTH_SHORT.show();
}
受保护的void showtostlong(字符串消息){
Toast.makeText(上下文“+”消息,Toast.LENGTH_LONG.show();
}   
@凌驾
公共void onClick(视图){
final int position=(整数)view.getTag();
字符串f_id=list.get(position.getId();
final CheckBox=(CheckBox)view.findViewById(R.id.chekbox);
sqhandle=新的SqliteHandle(上下文);
最终布尔值isChecked=checkBox.isChecked();
int total=sqhandle.getCheckedCount();
复选框.setVisibility(View.GONE);
如果(已检查)
{
total_contacts=total_contacts+Integer.parseInt(list.get(position.getContacts());
sqhandle.changeCheck(“1”,f_id);
Toast.makeText(上下文,“所选联系人:+联系人总数,Toast.LENGTH.show();
}
其他的
{
sqhandle.changeCheck(“0”,f_id);
total_contacts=total_contacts-Integer.parseInt(list.get(position.getContacts());
Toast.makeText(上下文,“所选联系人:+联系人总数,Toast.LENGTH.show();
}
sqhandle.close();
复选框.setVisibility(View.VISIBLE);
list.get(position).setChecked(isChecked);
notifyDataSetChanged();
}
}   

使用ArrayList存储项目ID

ArrayList<Integer> tcontact = new ArrayList<Integer>();
 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<tcontact.size;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();
}
}}
ArrayList tcontact=new ArrayList();
如果(已检查)
{
tcontact.add(Integer.parseInt(list.get(position.getContacts()))
sqhandle.changeCheck(“1”,f_id);
Toast.makeText(上下文,“所选联系人:+联系人总数,Toast.LENGTH.show();
}
其他的
{
对于(inti=0;inAmDev

我听到你说的关于添加一个复选框来处理一个用户事件,表示用户想要设置所有的t
public void modifyFriends(List<FriendItem> fList, boolean checkedAll){
    String checkStatus = "0";   
    if(checkedAll){
        checkStatus = "1";
    }
    //sql code to change check status in database for all friends
}
if(item.isChecked() || checkedAll)
    {
        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);
    }
    if(checked){
        inviteListAdapter2.setCheckedAll(true);
        modifyFriends(friendsList, true); //call a db helper method to change reflect check status in db
    }else{
        inviteListAdapter2.setCheckedAll(false);
        modifyFriends(friendsList, false); //call a db helper method to change reflect check status in db
    }
    inviteListAdapter2.notifyDatasetChaged();