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();
}
}