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.inputmethod.InputMethodManager; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.EditText; import android.widget.AdapterView.OnItemClickListener; import android.widget.TextView.OnEditorActionListener; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.alibaba.fastjson.JSON; import com.bdyjy.R; import com.bdyjy.activity.MainActivity; import com.bdyjy.adapter.RecruitAdapter; import com.bdyjy.constants.HandlerOrder; import com.bdyjy.constants.ParleConstant; import com.bdyjy.custom.view.XListView; import com.bdyjy.custom.view.XListView.IXListViewListener; import com.bdyjy.entity.recruit.RecruitContentQueryResultBean; import com.bdyjy.entity.recruit.RecruitNewBean; import com.bdyjy.entity.recruit.RecruitQueryResultBean; import com.bdyjy.util.OkHttpUtils; import com.bdyjy.util.SPUtils; /** * ��Ƹ��Ϣ�б� Fragment * * @author parle * */ public class RecruitListFragment extends Fragment implements IXListViewListener { Handler handler = null; String toastMsg = null; final int type = 1; // �������ͣ��������ҳ�棬 ֻ��һ��type final int TIME_LENGTH = 10; private int pageSize = 5;// ���ص��б���Ŀ private int sizeStep = 5;// ÿ�μ��ص���Ŀ // ��ʼ��Handler private void initHandler() { handler = new Handler(ctx.getMainLooper()) { @Override public void handleMessage(Message msg) { switch (msg.what) { case HandlerOrder.TOAST: Toast.makeText(ctx, toastMsg, Toast.LENGTH_LONG).show(); break; case HandlerOrder.UPDATE_LISTVIEW: listView.onLoad(); loadData(); break; case HandlerOrder.PROCESSBAR_SHOW: ctx.showRoundProcessDialog(); break; case HandlerOrder.PROCESSBAR_HIDE: ctx.hideRoundProcessDialog(); break; } } }; } private MainActivity ctx; // �Զ��������б���� private XListView listView; private RecruitAdapter recruitAdapter; private List<Map<String, Object>> listItems; private TextView tv_back; private EditText et_search = null; private RelativeLayout rl_search_off = null; private RelativeLayout rl_search_on = null; private TextView tv_search_cancel; public RecruitListFragment(MainActivity ctx) { this.ctx = ctx; initHandler(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.recruit_list_fragment, null); tv_back = (TextView) view.findViewById(R.id.recruit_list_tv_back); tv_back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ctx.jumpToFirstPageFregment(); } }); listView = (XListView) view.findViewById(R.id.recruit_listview); listView.setPullLoadEnable(true); listView.setXListViewListener(this); listItems = new ArrayList<Map<String, Object>>(); // ѡ��ĵ���¼� listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // ����ѡ��ĵ���¼� TextView tv = (TextView) view .findViewById(R.id.recruit_list_item_id); // �����������id������ѯ������������ݣ���ʾ���� // ��ѯ��̨ getNewsContent(tv.getText().toString()); } }); // ��������view rl_search_off = (RelativeLayout) view .findViewById(R.id.recruit_searchbar_off); rl_search_on = (RelativeLayout) view .findViewById(R.id.recruit_searchbar_on); et_search = (EditText) view.findViewById(R.id.recruit_et_search); tv_search_cancel = (TextView) view .findViewById(R.id.recruit_tv_search_cancel); // �����ʼ���� rl_search_off.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { rl_search_off.setVisibility(View.INVISIBLE); rl_search_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() { 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.recruit_tv_search_cancel); // �ر������� tv_search_cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { rl_search_off.setVisibility(View.VISIBLE); rl_search_on.setVisibility(View.INVISIBLE); et_search.setText(""); } }); // �����������������̨���� et_search = (EditText) view.findViewById(R.id.recruit_et_search); et_search.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if ((actionId == 0 || actionId == 3) && event != null) { // ����������رռ��� InputMethodManager inputManager = (InputMethodManager) et_search .getContext().getSystemService( Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(ctx.getCurrentFocus() .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); // ��̨�������� searchNewsList(); } return false; } }); // �����б�����; if (null == MainActivity.recruitNewsList) getNewsList(); else loadData(); return view; } /** * ���ڼ�ְ��Ϣ�����ݣ��̳��������� */ private void loadData() { // ���ԭ������ listItems.clear(); Map<String, Object> map = null; if (null != MainActivity.recruitNewsList) { for (int i = 0; i < MainActivity.recruitNewsList.size(); i++) { map = new HashMap<String, Object>(); // �б���ʾ������ map.put("job", MainActivity.recruitNewsList.get(i) .getPosition()); map.put("pubFrom", MainActivity.recruitNewsList.get(i) .getCompany()); map.put("time", MainActivity.recruitNewsList.get(i) .getCreateTime().substring(0, TIME_LENGTH)); map.put("id", MainActivity.recruitNewsList.get(i).getId()); listItems.add(map); } } if (null == recruitAdapter) { recruitAdapter = new RecruitAdapter(ctx, listItems); // ���������� listView.setAdapter(recruitAdapter); } else { recruitAdapter.refresh(listItems); } } /** * �������װ�Ӻ�̨һ����ȡ��ְ�����б�ķ��� * */ private void getNewsList() { Thread thread = 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", ""); String url = "/admin/recruit/grid.do?pageNo=1&pageSize=5" + "&token=" + token + "&singnature=" + singnature + "&st=" + st; try { handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_SHOW); res = OkHttpUtils.getInstance().doGet(ctx, url); 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()); if (res.trim().length() == 0) { toastMsg = "��ȡ��Ƹ��Ϣʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); return; } // ����ֵ������JSON��ʽ�����ݣ���Ҫ��������� // ���Խ�json��ת����bean���� RecruitQueryResultBean recruitQRB = JSON.parseObject(res, RecruitQueryResultBean.class); // System.out.println("xxxx:" + nqrb.getApp_result_key()); String app_result_key = recruitQRB.getApp_result_key(); if ("0".equals(app_result_key)) { // ��������˵���������������ݣ���Ҫ�������ȡ���ŵı��� List<RecruitNewBean> list = recruitQRB.getData().getRows(); for (RecruitNewBean n : list) { System.out.println(n.getTitle()); } // ����Щ���Ŷ���洢��sp�� MainActivity.recruitNewsList = list; // ʹ��handlerȥ֪ͨ���̸߳���listview handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } } }; thread.start(); } /** * �������װ�Ӻ�̨һ����ȡ�������ݵķ��� * * @param id */ private void getNewsContent(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/recruit/findById.do?id=" + id + "&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; } if (res.trim().length() == 0) { toastMsg = "��ȡ��������ʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); return; } // JSON���� RecruitContentQueryResultBean recruitCQR = JSON.parseObject( res, RecruitContentQueryResultBean.class); String app_result_key = recruitCQR.getApp_result_key(); // System.out.println("xxxx:" + app_result_key); if ("0".equals(app_result_key)) { RecruitNewBean recruit = recruitCQR.getEntity(); MainActivity.recruitNew = recruit; } ctx.jumpToClickById(ParleConstant.JUMP_RECRUIT_CONTENT); } }.start(); } /** * �������� */ private void searchNewsList() { Thread thread = 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", ""); String searchKeys = et_search.getText().toString().trim(); try { handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_SHOW); res = OkHttpUtils.getInstance().doGet( ctx, "/admin/recruit/grid.do?pageNo=1&pageSize=15&type=" + type + "&pageSearchKeys=" + searchKeys + "&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; } if (res.trim().length() == 0) { toastMsg = "����ʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); return; } // ����ֵ������JSON��ʽ�����ݣ���Ҫ��������� // ���Խ�json��ת����bean���� RecruitQueryResultBean recruitQRB = JSON.parseObject(res, RecruitQueryResultBean.class); // System.out.println("xxxx:" + nqrb.getApp_result_key()); String app_result_key = recruitQRB.getApp_result_key(); if ("0".equals(app_result_key)) { // ��������˵���������������ݣ���Ҫ�������ȡ���ŵı��� List<RecruitNewBean> list = recruitQRB.getData().getRows(); if (list.size() == 0) { toastMsg = "û�ҵ���Ҫ������"; handler.sendEmptyMessage(HandlerOrder.TOAST); } for (RecruitNewBean n : list) { System.out.println(n.getTitle()); } // ����Щ���Ŷ���洢��sp�� MainActivity.recruitNewsList = list; // ʹ��handlerȥ֪ͨ���̸߳���listview handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } else { toastMsg = "��ȡ����ʧ�ܣ����Ժ�����..."; handler.sendEmptyMessage(HandlerOrder.TOAST); return; } } }; thread.start(); } @Override public void onRefresh() { getNewsList(); } @Override public void onLoadMore() { pageSize += sizeStep; getNewsList(); } }