package com.bdyjy.fragment; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import android.app.Fragment; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; import com.alibaba.fastjson.JSON; import com.bdyjy.R; import com.bdyjy.activity.MainActivity; import com.bdyjy.adapter.ContactListViewAdapter; import com.bdyjy.constants.HandlerOrder; import com.bdyjy.custom.view.XListView; import com.bdyjy.custom.view.XListView.IXListViewListener; import com.bdyjy.entity.contact.Contact; import com.bdyjy.entity.contact.ContactContent; import com.bdyjy.entity.contact.ContactDepartment; import com.bdyjy.util.OkHttpUtils; import com.bdyjy.util.SPUtils; /** * ͨѶ¼fragment * * @author cuicui create at 2016-03-29 0:23 * */ public class ContactListFragment extends Fragment implements IXListViewListener { Handler handler = null; String toastMsg = null; private View viewMain; private LayoutInflater inflaterMain; /* ����ͨѶ¼�б���� */ private XListView contactlistView; private MainActivity ctx; private ContactListViewAdapter contactListViewAdapter; private List<Map<String, Object>> contactListItems; private TextView tv_back; private EditText et_search; // ����״̬�µ������ private TextView tv_search_cancel;// �ر��������� private RelativeLayout rl_searchbar_off; // �ر�״̬�µ������ private RelativeLayout rl_searchbar_on;// ����״̬�µ������ private int pageSize = 5;// ҳ����������-���� private int sizeStep = 20;// ÿ�μ��ص���Ŀ private String searchKeys;// �����ؼ��� private boolean search_tag = false;// ��������״̬ true ��������״̬ false��������״̬ // �����������ܵ��߼����⻹û�н�� private void initHandler() { handler = new Handler(ctx.getMainLooper()) { @Override public void handleMessage(Message msg) { switch (msg.what) { case HandlerOrder.TOAST: // TODO Toast.makeText(ctx, toastMsg, Toast.LENGTH_LONG).show(); break; case HandlerOrder.UPDATE_LISTVIEW: contactlistView.onLoad(); loadData(); break; case HandlerOrder.PROCESSBAR_SHOW: ctx.showRoundProcessDialog(); break; case HandlerOrder.PROCESSBAR_HIDE: ctx.hideRoundProcessDialog(); break; } } }; } public ContactListFragment(MainActivity ctx) { this.ctx = ctx; initHandler(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.contactlist_fragment, null); // tv_back = (TextView) view.findViewById(R.id.tv_contact_back); // tv_back.setOnClickListener(new OnClickListener() { // @Override // public void onClick(View v) { // ctx.jumpToFirstPageFregment(); // } // }); view.findViewById(R.id.ll_back).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { ctx.jumpToPersonalCenterFragment(); } }); contactlistView = (XListView) view .findViewById(R.id.department_1_contact_listview); contactlistView.setPullLoadEnable(true); contactlistView.setXListViewListener(this); contactListItems = new ArrayList<Map<String, Object>>(); // ��ʼ������� rl_searchbar_off = (RelativeLayout) view .findViewById(R.id.searchbar_off); rl_searchbar_on = (RelativeLayout) view.findViewById(R.id.searchbar_on); // ���������� rl_searchbar_off.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { rl_searchbar_off.setVisibility(View.INVISIBLE); rl_searchbar_on.setVisibility(View.VISIBLE); et_search.setFocusable(true); et_search.requestFocus(); // �����Զ��������뷨 InputMethodManager imm = (InputMethodManager) et_search .getContext().getSystemService( Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED); Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { InputMethodManager inputManager = (InputMethodManager) et_search .getContext().getSystemService( Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(et_search, 0); } }, 400); } }); tv_search_cancel = (TextView) view.findViewById(R.id.tv_search_cancel); // �ر������� tv_search_cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { rl_searchbar_off.setVisibility(View.VISIBLE); rl_searchbar_on.setVisibility(View.INVISIBLE); et_search.setText(""); } }); // ������������� et_search = (EditText) view.findViewById(R.id.et_search); et_search.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { Toast.makeText(ctx, "�������������Ե�", Toast.LENGTH_SHORT).show(); searchLostList(); return false; } }); // ѡ��ĵ���¼� contactlistView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // ����ѡ��ĵ���¼� TextView tv = (TextView) view.findViewById(R.id.tv_contact_id); System.out.println("��ȡͨѶ¼idΪ��" + id); // �������ͨѶ¼id������ѯ�����ͨѶ¼���ݣ���ʾ���� // ��ѯ��̨ getContactContent(tv.getText().toString()); } }); if (null == MainActivity.contactlistByDepartment) getContactList(); else loadData(); return view; } private void loadData() { // ���ԭ������ contactListItems.clear(); Map<String, Object> map = null; for (int i = 0; i < MainActivity.contactlistByDepartment.size(); i++) { List<ContactContent> contactList = MainActivity.contactlistByDepartment .get(i).getData(); for (int j = 0; j < contactList.size(); j++) { map = new HashMap<String, Object>(); // ����һ��json�л�ȡ�������� map.put("total", MainActivity.contactlistByDepartment.get(i) .getTotal()); map.put("name", contactList.get(j).getName()); // ��Ʒ���� map.put("id", contactList.get(j).getId()); map.put("telphone", contactList.get(j).getTelphone()); map.put("office", contactList.get(j).getOffice()); map.put("telphone", contactList.get(j).getTelphone()); map.put("sex", contactList.get(j).getSex()); map.put("email", contactList.get(j).getEmail()); map.put("department", contactList.get(j).getDepartment()); contactListItems.add(map); } } if (null == contactListViewAdapter) { contactListViewAdapter = new ContactListViewAdapter(ctx, contactListItems); // ���������� contactlistView.setAdapter(contactListViewAdapter); } else { contactListViewAdapter.refresh(); } } // �������װ�Ӻ�̨һ����ȡͨѶ¼�б�ķ��� private void getContactList() { new Thread() { @Override public void run() { // ����get���� String res = null; // ��sharePreference��ȡ��֮ǰ�洢�IJ��� String token = (String) SPUtils.get(ctx, "token", ""); String singnature = (String) SPUtils.get(ctx, "singnature", ""); String st = (String) SPUtils.get(ctx, "st", ""); try { handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_SHOW); res = OkHttpUtils.getInstance().doGet( ctx, "/admin/contact/get_list.do" + "?token=" + token + "&singnature=" + singnature + "&st=" + st); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); } catch (Exception e) { e.printStackTrace(); toastMsg = "��ȡͨѶ¼����ʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); return; } System.out.println("����ͨѶ¼�����󷵻صĽ���ǣ�" + res.trim()); // ���Խ�json��ת����bean���� Contact bean = JSON.parseObject(res, Contact.class); // System.out.println("xxxx:" + nqrb.getApp_result_key()); // ����ֵ������JSON��ʽ�����ݣ���Ҫ��������� if (res.trim().length() == 0) { toastMsg = "��ȡͨѶ¼�б�ʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); return; } String app_result_key = bean.getApp_result_key(); if ("0".equals(app_result_key)) { // ��������˵���������������ݣ���Ҫ�������ȡͨѶ¼�ı��� List<ContactDepartment> contactlistbydepartment = bean .getData(); // ����ЩͨѶ¼����洢��sp�� MainActivity.contactlistByDepartment = contactlistbydepartment; // ʹ��handlerȥ֪ͨ���̸߳���listview handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } } }.start(); } // �������� private void searchLostList() { new Thread() { @Override public void run() { handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_SHOW); // ����get���� String res = null; // ��sharePreference��ȡ��֮ǰ�洢�IJ��� String token = (String) SPUtils.get(ctx, "token", ""); String singnature = (String) SPUtils.get(ctx, "singnature", ""); String st = (String) SPUtils.get(ctx, "st", ""); String search = et_search.getText().toString().trim(); try { res = OkHttpUtils.getInstance().doGet( ctx, "/admin/contact/get_list.do" + "?search=" + search + "&token=" + token + "&singnature=" + singnature + "&st=" + st); } catch (Exception e) { e.printStackTrace(); toastMsg = "��ȡ����ʧ�ܣ���������"; handler.sendEmptyMessage(HandlerOrder.TOAST); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); return; } handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); System.out.println("����ͨѶ¼�����󷵻صĽ���ǣ�" + res.trim()); // ���Խ�json��ת����bean���� Contact bean = JSON.parseObject(res, Contact.class); // System.out.println("xxxx:" + bean.getApp_result_key()); // if (res.trim().length() == 0) { toastMsg = "��ȡ����ʧ�ܣ���������"; handler.sendEmptyMessage(HandlerOrder.TOAST); return; } String app_result_key = bean.getApp_result_key(); if ("0".equals(app_result_key)) { // ��������˵���������������ݣ���Ҫ�������ȡͨѶ¼�ı��� List<ContactDepartment> contactlistbydepartment = bean .getData(); if (contactlistbydepartment.size() == 0) { toastMsg = "û�ҵ���Ҫ������"; handler.sendEmptyMessage(HandlerOrder.TOAST); } // ����ЩͨѶ¼����洢��sp�� MainActivity.contactlistByDepartment = contactlistbydepartment; // ʹ��handlerȥ֪ͨ���̸߳���listview handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); // ��ʱ���� } else { toastMsg = "��ȡ����ʧ�ܣ���������"; handler.sendEmptyMessage(HandlerOrder.TOAST); return; } } }.start(); } // �������װ�Ӻ�̨һ����ȡͨѶ¼���ݵķ��� private void getContactContent(final String id) { new Thread() { @Override public void run() { // ����get���� String res = null; // ��sharePreference��ȡ��֮ǰ�洢�IJ��� String token = (String) SPUtils.get(ctx, "token", ""); String singnature = (String) SPUtils.get(ctx, "singnature", ""); String st = (String) SPUtils.get(ctx, "st", ""); try { handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_SHOW); res = OkHttpUtils.getInstance().doGet( ctx, "/admin/contact/get_list.do?id=" + id + "&token=" + token + "&singnature=" + singnature + "&st=" + st); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); } catch (Exception e) { e.printStackTrace(); toastMsg = "��ȡͨѶ¼����ʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); return; } System.out.println("����ͨѶ¼���飺���󷵻صĽ���ǣ�" + res.trim() + "idΪ ��" + id); ContactDepartment bean = JSON.parseObject(res, ContactDepartment.class); // ����ֵ������JSON��ʽ�����ݣ���Ҫ��������� if (res.trim().length() == 0) { toastMsg = "��ȡͨѶ¼����ʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); return; } // String app_result_key = bean.getApp_result_key(); // if ("0".equals(app_result_key))// ������������ͨѶ¼������, // ��ô��Ҫ������ȡ��ͨѶ¼�ı��⣬���ݣ���ʾ�ڽ����� // { ContactContent b = bean.getData().get(0); MainActivity.contact = b; // } ctx.jumpToContactContentFragment(); } }.start(); } /** * �������������أ�����ˢ����ش��� */ @Override public void onRefresh()// ����ˢ�� { // toastMsg = "��⵽����ˢ�¶���"; // handler.sendEmptyMessage(HandlerOrder.TOAST); // ˢ������ getContactList(); } @Override public void onLoadMore()// ���Ǽ��ظ��� { // toastMsg = "��⵽�������ض���"; // handler.sendEmptyMessage(HandlerOrder.TOAST); pageSize += sizeStep; getContactList(); } }