package com.bdyjy.adapter; import java.util.List; import java.util.Map; import com.bdyjy.R; import com.bdyjy.activity.MainActivity; import com.bdyjy.adapter.ListViewAdapter.ListItemView; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; /** * ͨѶ¼������ * * @author cuicui create at 2016-03-29 0:39 * */ public class ContactListViewAdapter extends BaseAdapter { private Context context; // ���������� private List<Map<String, Object>> contactListItems; // ͨѶ¼���� private LayoutInflater listContainer; // ��ͼ���� public ContactListViewAdapter(Context context, List<Map<String, Object>> contactListItems) { super(); this.context = context; this.contactListItems = contactListItems; this.listContainer = LayoutInflater.from(context); // ������ͼ����������������; } public final class ContactListItemView { // �Զ���ؼ����� public TextView name; public TextView mobilephone; public TextView id; public TextView department; public TextView total; public ImageView phone_icon; public LinearLayout department_info; } @Override public int getCount() { // TODO Auto-generated method stub return contactListItems.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } /** * contactListView Item���� */ @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub Log.e("method", "getView"); // �Զ�����ͼ ContactListItemView contactListItemView = null; if (convertView == null) { contactListItemView = new ContactListItemView(); // ��ȡlist_item�����ļ�����ͼ convertView = listContainer.inflate(R.layout.contact_item, null); // ��ȡ�ؼ����� contactListItemView.department_info = (LinearLayout) convertView .findViewById(R.id.department_info); contactListItemView.name = (TextView) convertView .findViewById(R.id.name); contactListItemView.mobilephone = (TextView) convertView .findViewById(R.id.mobilephone); contactListItemView.id = (TextView) convertView .findViewById(R.id.tv_contact_id); contactListItemView.department = (TextView) convertView .findViewById(R.id.department_name); contactListItemView.total = (TextView) convertView .findViewById(R.id.total); contactListItemView.phone_icon = (ImageView) convertView .findViewById(R.id.phone_icon); // ���ÿؼ�����convertView convertView.setTag(contactListItemView); } else { contactListItemView = (ContactListItemView) convertView.getTag(); } String currentDepartmentName = ((String) contactListItems.get(position) .get("department")).trim(); String total = (String) contactListItems.get(position).get("total") + "��"; if (position == 0) { contactListItemView.department_info.setVisibility(View.VISIBLE); contactListItemView.department.setText(currentDepartmentName); contactListItemView.total.setText(total); } else { String lastDepartmentName = ((String) contactListItems.get( position - 1).get("department")).trim(); if (currentDepartmentName.equals(lastDepartmentName)) { contactListItemView.department_info.setVisibility(View.GONE); } else { contactListItemView.department_info.setVisibility(View.VISIBLE); contactListItemView.department.setText(currentDepartmentName); contactListItemView.total.setText(total); } } // �������ֺ�ͼƬ contactListItemView.name.setText((String) contactListItems .get(position).get("name")); contactListItemView.mobilephone.setText((String) contactListItems.get( position).get("telphone")); contactListItemView.id.setText((String) contactListItems.get(position) .get("id")); // �������绰 final String mobilephone = ((String) contactListItems.get(position) .get("telphone")).trim(); if (mobilephone != null) { contactListItemView.phone_icon .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_CALL, Uri .parse("tel:" + mobilephone)); context.startActivity(intent); } }); } return convertView; } public void refresh() { // ����this.contactlistItems for (Map<String, Object> map : this.contactListItems) { System.out.println("map:" + map); } notifyDataSetChanged(); } }