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 com.alibaba.fastjson.JSON; import com.bdyjy.R; import com.bdyjy.activity.MainActivity; import com.bdyjy.adapter.AssistantAdapter; 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.assistant.AssistantContentQueryResultBean; import com.bdyjy.entity.assistant.AssistantNewBean; import com.bdyjy.entity.assistant.AssistantQueryResultBean; import com.bdyjy.util.OkHttpUtils; import com.bdyjy.util.SPUtils; import android.app.Fragment; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.EditText; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import android.widget.TextView.OnEditorActionListener; /** * �ڹ���ѧ�б� Fragment * * @author parle * */ public class AssistantListFragment extends Fragment implements IXListViewListener { Handler handler = null; String toastMsg = null; final int type = 1; final int TIME_LENGTH = 10; private int pageSize = 5;// ���ص��б���Ŀ private int sizeStep = 5;// ÿ�μ��ص���Ŀ 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 AssistantAdapter assistantAdapter; 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 AssistantListFragment(MainActivity ctx) { this.ctx = ctx; initHandler(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.assistant_list_fragment, null); tv_back = (TextView) view.findViewById(R.id.assistant_list_tv_back); tv_back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ctx.jumpToFirstPageFregment(); } }); listView = (XListView) view.findViewById(R.id.assistant_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.assistant_list_item_id); // �����������id������ѯ������������ݣ���ʾ���� // ��ѯ��̨ getNewsContent(tv.getText().toString()); } }); // ��������view rl_search_off = (RelativeLayout) view .findViewById(R.id.assistant_searchbar_off); rl_search_on = (RelativeLayout) view .findViewById(R.id.assistant_searchbar_on); et_search = (EditText) view.findViewById(R.id.assistant_et_search); tv_search_cancel = (TextView) view .findViewById(R.id.assistant_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.assistant_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.et_search); et_search.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if ((actionId == 0 || actionId == 3) && event != null) { Toast.makeText(ctx, "�������������Ե�", Toast.LENGTH_SHORT).show(); // ����������رռ��� 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.assistantNewsList) getNewsList(); else loadData(); return view; } /** * ���ڼ�ְ��Ϣ�����ݣ��̳��������� */ private void loadData() { // ���ԭ������ listItems.clear(); Map<String, Object> map = null; if (null != MainActivity.assistantNewsList) { for (int i = 0; i < MainActivity.assistantNewsList.size(); i++) { map = new HashMap<String, Object>(); map.put("job", MainActivity.assistantNewsList.get(i).getTitle()); map.put("pubFrom", MainActivity.assistantNewsList.get(i) .getSector()); map.put("number", MainActivity.assistantNewsList.get(i) .getAsiNum()); map.put("time", MainActivity.assistantNewsList.get(i) .getCreateTime().substring(0, TIME_LENGTH)); map.put("id", MainActivity.assistantNewsList.get(i).getId()); listItems.add(map); } } if (null == assistantAdapter) { assistantAdapter = new AssistantAdapter(ctx, listItems); // ���������� listView.setAdapter(assistantAdapter); } else { assistantAdapter.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", ""); try { handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_SHOW); res = OkHttpUtils.getInstance() .doGet(ctx, "/admin/asistance/grid.do?pageNo=1&pageSize=" + pageSize + "&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; } System.out.println("�������ţ����󷵻صĽ���ǣ�" + res.trim()); // ���Խ�json��ת����bean���� AssistantQueryResultBean assistantQRB = JSON.parseObject(res, AssistantQueryResultBean.class); // ��������˵���������������ݣ���Ҫ�������ȡ���ŵı��� String app_result_key = assistantQRB.getApp_result_key(); System.out.println("******xxxx:" + app_result_key); if ("0".equals(app_result_key)) { List<AssistantNewBean> list = assistantQRB.getData() .getRows(); for (AssistantNewBean n : list) { System.out.println(n.getTitle()); } MainActivity.assistantNewsList = list; handler.sendEmptyMessage(HandlerOrder.UPDATE_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/asistance/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); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); return; } System.out.println("��������ҳ��" + res.trim()); Log.d("content", res.trim()); // JSON���� AssistantContentQueryResultBean assistantCQR = JSON .parseObject(res, AssistantContentQueryResultBean.class); String app_result_key = assistantCQR.getApp_result_key(); // System.out.println("xxxx:" + app_result_key); if ("0".equals(app_result_key)) { AssistantNewBean assistant = assistantCQR.getEntity(); MainActivity.assistantNew = assistant; } ctx.jumpToClickById(ParleConstant.JUMP_ASSISTANT_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/asistance/grid.do?pageNo=1&pageSize=" + pageSize + "&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; } System.out.println("�������ţ����󷵻صĽ���ǣ�" + res.trim()); // ���Խ�json��ת����bean���� AssistantQueryResultBean assistantQRB = JSON.parseObject(res, AssistantQueryResultBean.class); // ��������˵���������������ݣ���Ҫ�������ȡ���ŵı��� String app_result_key = assistantQRB.getApp_result_key(); System.out.println("******xxxx:" + app_result_key); if ("0".equals(app_result_key)) { List<AssistantNewBean> list = assistantQRB.getData() .getRows(); if (list.size() == 0) { toastMsg = "û�ҵ���Ҫ������"; handler.sendEmptyMessage(HandlerOrder.TOAST); } for (AssistantNewBean n : list) { System.out.println(n.getTitle()); } MainActivity.assistantNewsList = list; handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } }; thread.start(); } @Override public void onRefresh() { // TODO Auto-generated method stub getNewsList(); } @Override public void onLoadMore() { // TODO Auto-generated method stub pageSize += sizeStep; getNewsList(); } }