Android通讯录开发之实现全选、反选功能
// 用于保存勾选的联系人 private HashMap<Contact, Boolean> map_NumberSelected = new HashMap<Contact, Boolean>();
private boolean isAllChecked = false;
if (isAllChecked) { selectAllBtn.setBackgroundResource(R.drawable.select_all_not); invertSelection(); } else { selectAllBtn.setBackgroundResource(R.drawable.select_all); selectAllContacts(); }
public void selectAllContacts() { for (int i = 0; i < contactList.size(); i++) { Contact contact = contactList.get(i); map_NumberSelected.put(contact, true); } isAllChecked = true; refreshList(); }
反选方法
public void invertSelection() { for (int i = 0; i < contactList.size(); i++) { Contact contact = contactList.get(i); map_NumberSelected.put(contact, false); } isAllChecked = false; refreshList(); }
package com.suntek.mobilemeeting.adapter; import java.util.ArrayList; import java.util.HashMap; import android.content.Context; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.TextView; import com.suntek.mobilemeeting.R; import com.suntek.mobilemeeting.model.Contact; /** * 本地联系人适配器 * * @author wwj * */ public class LocalContactAdapter extends BaseAdapter { private HashMap<Integer, View> lmap = new HashMap<Integer, View>(); private ArrayList<Contact> contactList; private Context context; private HashMap<Contact, Boolean> map_NumberSelected = null; private String kind; public class ViewHolder { public TextView contactName; public TextView contactMobile; public TextView contactEmail; public CheckBox checkBox; } public LocalContactAdapter(Context context, ArrayList<Contact> contactList, String kind) { this.contactList = contactList; this.context = context; map_NumberSelected = new HashMap<Contact, Boolean>(); this.kind = kind; } @Override public int getCount() { return contactList.size(); } @Override public Object getItem(int position) { return contactList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.local_contact_list_item, null); holder.contactName = (TextView) convertView .findViewById(R.id.name_tv); holder.contactMobile = (TextView) convertView .findViewById(R.id.number_tv); holder.contactEmail = (TextView) convertView .findViewById(R.id.email_tv); holder.checkBox = (CheckBox) convertView .findViewById(R.id.local_contact_checkbox); // lmap.put(position, convertView); convertView.setTag(holder); } else { // convertView = lmap.get(position); holder = (ViewHolder) convertView.getTag(); } Contact contact = contactList.get(position); if (contact.getName() == "" || contact.getName() == null) { String name = "未知"; holder.contactName.setText(name); } else { holder.contactName.setText(contact.getName()); } if (kind != null && kind.equals("email")) { if (!TextUtils.isEmpty(contact.getEmail())) { holder.contactEmail.setText(contact.getEmail()); holder.contactMobile.setVisibility(View.GONE); } } else if (!TextUtils.isEmpty(contact.getNumber())) { holder.contactMobile.setText(contact.getNumber()); holder.contactEmail.setVisibility(View.GONE); } else { holder.contactMobile.setVisibility(View.GONE); holder.contactEmail.setVisibility(View.GONE); } // 显示是否选中状态 holder.checkBox.setChecked(map_NumberSelected.get(contact)); return convertView; } public void setContactList(ArrayList<Contact> contactList) { this.contactList = contactList; } public void setMap_NumberSelected( HashMap<Contact, Boolean> map_NumberSelected) { this.map_NumberSelected = map_NumberSelected; } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。