package com.bdyjy.fragment;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.LinearLayout;
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.MyComplaintListAdapter;
import com.bdyjy.constants.HandlerOrder;
import com.bdyjy.custom.view.XListView;
import com.bdyjy.custom.view.XListView.IXListViewListener;
import com.bdyjy.entity.attArryData;
import com.bdyjy.entity.complaint.ComplaintContentQueryResultBean;
import com.bdyjy.entity.complaint.ComplaintQueryResultBean;
import com.bdyjy.entity.complaint.Complaints;
import com.bdyjy.util.OkHttpUtils;
import com.bdyjy.util.SPUtils;
/**
*
* @author holy �ҵ�Ͷ�߽����б���
*
*/
/**
* ��Щ�����ݲ�����
*
* */
public class MyComplaintListFragment extends Fragment implements
IXListViewListener
{
Handler handler = null;
String toastMsg = null;
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:
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 MyComplaintListAdapter complaintViewAdapter;
private List<Map<String, Object>> listItems;
private TextView tv_back;
private int pageSize = 5;// ҳ����������-����
private int sizeStep = 5;// ÿ�μ��ص���Ŀ
/**
* 1����ʳ�ã�2����У��ȫ��3��������
*/
int type = 1;
public MyComplaintListFragment(MainActivity ctx)
{
this.ctx = ctx;
initHandler();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.mycomplaint_fragment, null);
// ���ؼ�
// tv_back = (TextView) view.findViewById(R.id.tv_back);
view.findViewById(R.id.ll_back).setOnClickListener(
new OnClickListener()
{
@Override
public void onClick(View v)
{
if ("personCenter".equals(MainActivity.orderFrom))
{
ctx.jumpToPersonalCenterFragment();
MainActivity.orderFrom = "";// ��ת֮���������
} else
{
ctx.jumpToComplaintFregment();
}
}
});
listView = (XListView) view.findViewById(R.id.compliantlist);
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.mycomplaint_id);
// ���������Ŀid������ѯ��������ݣ���ʾ����
// ��ѯ��̨
// Toast.makeText(getActivity(), tv.getText().toString(),
// Toast.LENGTH_SHORT).show();
getContent(tv.getText().toString());
}
});
pageSize = 5;
getList(type);
System.out.println(MainActivity.newsList);
loadData();
initTab(view);
return view;
}
private void loadData()
{
// ���ԭ������
listItems.clear();
Map<String, Object> map = null;
if (MainActivity.complaintsList == null)
{
System.out.println("complaintsList��");
} else
{
for (int i = 0; i < MainActivity.complaintsList.size(); i++)
{
map = new HashMap<String, Object>();
map.put("complaint_image", R.drawable.news_1); // ͼƬ��Դ,
// ��ʱ��ʹ��ͬһ��ͼƬ��Ϊ����
map.put("complaint_title", MainActivity.complaintsList.get(i)
.getTitle()); // ��Ʒ����
map.put("complaint_id", MainActivity.complaintsList.get(i)
.getId());
map.put("complaint_classify", MainActivity.complaintsList
.get(i).getTypeShow());
map.put("complaint_status", MainActivity.complaintsList.get(i)
.getStausShow());
List<attArryData> attArry = MainActivity.complaintsList.get(i)
.getAttArry();
String http = "";
String http2 = "";
String http1 = "";
try
{
http1 = attArry.get(0).getFilePath().toString().trim();
http2 = MainActivity.complaintsList.get(i)
.getAttachmentPrefix();
} catch (Exception e)
{
e.printStackTrace();
}
http = http2 + http1;
map.put("http", http);
System.out.println("ͼƬ��ַΪ��" + http);
listItems.add(map);
}
if (null == complaintViewAdapter)
{
complaintViewAdapter = new MyComplaintListAdapter(ctx,
listItems); // ����������
listView.setAdapter(complaintViewAdapter);
} else
{
complaintViewAdapter.refresh(listItems);
}
}
}
// �������װ�Ӻ�̨һ����ȡͶ�߽����б�ķ���
private void getList(final int type)
{
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/proposal/grid.do?pageNo=1&pageSize="
+ pageSize + "&type=" + type + "&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����
ComplaintQueryResultBean nqrb = JSON.parseObject(res,
ComplaintQueryResultBean.class);
// System.out.println("xxxx:" + nqrb.getApp_result_key());
// ����ֵ������JSON��ʽ�����ݣ���Ҫ���������
if (res.trim().length() == 0)
{
toastMsg = "��ȡͶ���б�ʧ��";
handler.sendEmptyMessage(HandlerOrder.TOAST);
return;
}
String app_result_key = nqrb.getApp_result_key();
if ("0".equals(app_result_key))
{
// ��������˵���������������ݣ���Ҫ�������ȡ���ŵı���
List<Complaints> list = nqrb.getData().getRows();
for (Complaints n : list)
{
System.out.println(n.getTitle());
}
// ����Щ���Ŷ���洢��sp��
MainActivity.complaintsList = list;
// ʹ��handlerȥ֪ͨ���̸߳���listview
handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW);
}
}
};
thread.start();
}
// �������װ�Ӻ�̨һ����ȡͶ���б����ݵķ���
private void getContent(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/proposal/findById.do?id=" + id + "&token="
+ token + "&singnature=" + singnature
+ "&st=" + st);
handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE);
} catch (Exception e)
{
e.printStackTrace();
toastMsg = "��ȡ����ʧ��";
handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE);
handler.sendEmptyMessage(HandlerOrder.TOAST);
return;
}
System.out.println("����Ͷ�߽������ݷ��صĽ���ǣ�" + res.trim());
ComplaintContentQueryResultBean bean = JSON.parseObject(res,
ComplaintContentQueryResultBean.class);
// System.out.println("xxxx:" + bean.getApp_result_key());
// ����ֵ������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))// ���������������ŵ�����,
// ��ô��Ҫ������ȡ�����ŵı��⣬���ݣ���ʾ�ڽ�����
{
Complaints b = bean.getEntity();
MainActivity.complaints = b;
System.out.println("news:" + b);
}
ctx.jumpToComplaintContentFregment();
}
}.start();
}
/**
* �������������أ�����ˢ����ش���
*/
@Override
public void onRefresh()// ����ˢ��
{
// toastMsg = "������ˢ�¶���";
// handler.sendEmptyMessage(HandlerOrder.TOAST);
// ˢ������
getList(type);
}
@Override
public void onLoadMore()// ���Ǽ��ظ���
{
// toastMsg = "���������ض���";
// handler.sendEmptyMessage(HandlerOrder.TOAST);
pageSize += sizeStep;
getList(type);
}
// 3�����͵������б���л�
private LinearLayout ll_news_type1, ll_news_type2, ll_news_type3;
/**
* ��ʼ��ѡ�
*
* @param view
*/
@SuppressLint("NewApi")
private void initTab(View view)
{
// ���������л�
ll_news_type1 = (LinearLayout) view.findViewById(R.id.ll_news_type1);
ll_news_type2 = (LinearLayout) view.findViewById(R.id.ll_news_type2);
ll_news_type3 = (LinearLayout) view.findViewById(R.id.ll_news_type3);
// ÿ���л��������ʺ�̨��Ȼ����ص��б���
ll_news_type1.setOnClickListener(new OnClickListener()
{
@SuppressLint("NewApi")
@Override
public void onClick(View v)
{
// ���ҽ���ǰѡ�е�������Ӵֱ�ɫ�������Ļع�ԭstyle
ll_news_type1.setBackground(getResources().getDrawable(
R.drawable.selected_item_bg));
ll_news_type2.setBackground(getResources().getDrawable(
R.drawable.not_selected_item_bg));
ll_news_type3.setBackground(getResources().getDrawable(
R.drawable.not_selected_item_bg));
pageSize = 5;
type = 1;
// getNewsList(type);
getList(type);// ��������Ҫ���ر�
}
});
ll_news_type2.setOnClickListener(new OnClickListener()
{
@SuppressLint("NewApi")
@Override
public void onClick(View v)
{
// ���ҽ���ǰѡ�е�������Ӵֱ�ɫ�������Ļع�ԭstyle
ll_news_type2.setBackground(getResources().getDrawable(
R.drawable.selected_item_bg));
ll_news_type1.setBackground(getResources().getDrawable(
R.drawable.not_selected_item_bg));
ll_news_type3.setBackground(getResources().getDrawable(
R.drawable.not_selected_item_bg));
pageSize = 5;
type = 2;
getList(type);
}
});
ll_news_type3.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// ���ҽ���ǰѡ�е�������Ӵֱ�ɫ�������Ļع�ԭstyle
ll_news_type3.setBackground(getResources().getDrawable(
R.drawable.selected_item_bg));
ll_news_type2.setBackground(getResources().getDrawable(
R.drawable.not_selected_item_bg));
ll_news_type1.setBackground(getResources().getDrawable(
R.drawable.not_selected_item_bg));
pageSize = 5;
type = 3;
getList(type);
}
});
}
}