/** * FirstPageFregment.java[v 1.0.0] * class:com.mydream.fragment.freg,FirstPageFregment * 周航 create at 2016-3-22 下午7:40:18 */ 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.ListViewAdapter; import com.bdyjy.adapter.NanyanNewsListViewAdapter; import com.bdyjy.constants.HandlerOrder; import com.bdyjy.custom.view.XListView; import com.bdyjy.custom.view.XListView.IXListViewListener; import com.bdyjy.entity.News; import com.bdyjy.entity.NewsContentQueryResultBean; import com.bdyjy.entity.NewsQueryResultBean; import com.bdyjy.entity.news.NewsDetail; import com.bdyjy.entity.news.NewsDetailRes; import com.bdyjy.entity.news.NewsItem; import com.bdyjy.entity.news.NewsList; import com.bdyjy.util.OkHttpUtils; import com.bdyjy.util.SPUtils; /** * ��ҳfregment * * @author �ܺ�<br/> * create at 2016-3-22 ����7:40:18 */ @SuppressLint("NewApi") public class NewsListFragment 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: listView1.onLoad(); loadData(); break; case HandlerOrder.PROCESSBAR_SHOW: ctx.showRoundProcessDialog(); break; case HandlerOrder.PROCESSBAR_HIDE: ctx.hideRoundProcessDialog(); break; } } }; } private MainActivity ctx; // �Զ��������б���� // private ListView listView1; private XListView listView1; private ListViewAdapter listViewAdapter; private List<Map<String, Object>> listItems; private static int type = 1;// ��ǰ�������ֵ private int pageSize = 5;// ҳ����������-���� private int sizeStep = 5;// ÿ�μ��ص���Ŀ private NanyanNewsListViewAdapter nanyan_listViewAdapter;// ����Ҫ��adapter private static List<NewsItem> nanyanNewsList;// ����Ҫ���ر�list // 3�����͵������б���л� private LinearLayout ll_news_type1, ll_news_type2, ll_news_type3; public NewsListFragment(MainActivity ctx) { this.ctx = ctx; initHandler(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.newslist_fragment, null); view.findViewById(R.id.ll_back).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { ctx.jumpToFirstPageFregment(); } }); listView1 = (XListView) view.findViewById(R.id.newslist1); listView1.setPullLoadEnable(true); listView1.setXListViewListener(this); listItems = new ArrayList<Map<String, Object>>(); // ѡ��ĵ���¼� listView1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // ����ѡ��ĵ���¼� TextView tv = (TextView) view.findViewById(R.id.tv_news_id); String sid = tv.getText().toString(); // �����������id������ѯ������������ݣ���ʾ���� // ��ѯ��̨ if (type == 1) { System.out.println("���ڲ�ѯ����Ҫ�ŵ�����"); getNanyanNewsContent(sid); } else { getNewsContent(sid); } } }); initTab(view); // TODO �Ǿ� if (type == 1) { if (null == nanyanNewsList) getNanyanNews(); else handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } else { if (null == MainActivity.newsList) { ll_news_type2.performClick(); } else { // ���ı���ͼ 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)); handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } } loadData(); return view; } /** * ��ʼ��ѡ� * * @param view */ 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); getNanyanNews();// ��������Ҫ���ر𷽷� } }); ll_news_type2.setOnClickListener(new OnClickListener() { @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; getNewsList(type); // loadData(); } }); 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; getNewsList(type); // loadData(); } }); } private static final String[] URLS = { "http://h.hiphotos.baidu.com/image/pic/item/faedab64034f78f0b00507c97e310a55b3191cf9.jpg", "http://www.pkusz.edu.cn/uploadfile/2016/0427/20160427091614202.jpg", "http://imgsrc.baidu.com/forum/w%3D580/sign=fcae01763b87e9504217f3642039531b/2f2eb9389b504fc29fccbeb0e4dde71191ef6df7.jpg", "http://f.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=496abfc08db1cb133e3c3415ed647a76/b7003af33a87e95048e8274310385343fbf2b426.jpg", "http://d.hiphotos.baidu.com/zhidao/wh%3D450%2C600/sign=603e37439313b07ebde8580c39e7bd15/a8014c086e061d9591b7875a7bf40ad163d9cadb.jpg", }; private void loadData() { // ���ԭ������ listItems.clear(); Map<String, Object> map = null; if (type == 1)// ���type��1����˵��������Ҫ�ţ���������Ҫ�ŵ��ر𷽷� { if (null != nanyanNewsList) { for (int i = 0; i < nanyanNewsList.size(); i++) { map = new HashMap<String, Object>(); String thumb = nanyanNewsList.get(i).getThumb(); // http://img0.imgtn.bdimg.com/it/u=1619454554,2969607734&fm=21&gp=0.jpg // if(TextUtils.isEmpty(thumb)){ // thumb = // "http://img0.imgtn.bdimg.com/it/u=1619454554,2969607734&fm=21&gp=0.jpg"; // } map.put("thumb", thumb); // // ������ʹ�ò���ͼƬ������д���� // String thumb = ""; // if (i >= 5) // thumb = URLS[i % 5]; // else // thumb = URLS[i]; // map.put("thumb", thumb); map.put("title", nanyanNewsList.get(i).getTitle()); // ��Ʒ���� map.put("news_id", nanyanNewsList.get(i).getId()); map.put("sourcefrom", nanyanNewsList.get(i).getSourcefrom()); map.put("date", nanyanNewsList.get(i).getDate()); listItems.add(map); } } // if (null == nanyan_listViewAdapter) // { nanyan_listViewAdapter = new NanyanNewsListViewAdapter(ctx, listItems, listView1); // ���������� listView1.setAdapter(nanyan_listViewAdapter); // } else // { // nanyan_listViewAdapter.refresh(listItems); // } } else { if (null != MainActivity.newsList) { for (int i = 0; i < MainActivity.newsList.size(); i++) { System.out.println("bbbb:" + MainActivity.newsList.get(i)); map = new HashMap<String, Object>(); map.put("image", MainActivity.newsList.get(i).getLogo()); // ͼƬ��Դ, // ��ʱ��ʹ��ͬһ��ͼƬ��Ϊ���� map.put("date", MainActivity.newsList.get(i) .getCreateTime()); // map.put("title", MainActivity.newsList.get(i).getTitle()); // ��Ʒ���� map.put("news_id", MainActivity.newsList.get(i).getId()); map.put("pubFrom", MainActivity.newsList.get(i) .getPubFrom()); listItems.add(map); } } // if (null == listViewAdapter) // { listViewAdapter = new ListViewAdapter(ctx, listItems); // ���������� listView1.setAdapter(listViewAdapter); // } else // { // listViewAdapter.refresh(listItems); // } } } // �������װ�Ӻ�̨һ����ȡ�����б�ķ��� private void getNewsList(final int type) { 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/news/app/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���� NewsQueryResultBean nqrb = JSON.parseObject(res, NewsQueryResultBean.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<News> list = nqrb.getData().getRows(); for (News n : list) { System.out.println(n.getTitle()); } // ����Щ���Ŷ���洢��sp�� MainActivity.newsList = list; // ʹ��handlerȥ֪ͨ���̸߳���listview handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } } }.start(); } // �������װ�Ӻ�̨һ����ȡ�������ݵķ��� 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//news/app/initView.do?id=" + id + "&token=" + token + "&singnature=" + singnature + "&st=" + st); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); } catch (Exception e) { e.printStackTrace(); } System.out.println("��������res��" + res); NewsContentQueryResultBean bean = JSON.parseObject(res, NewsContentQueryResultBean.class); // System.out.println("xxxx:" + bean.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))// ���������������ŵ�����, // ��ô��Ҫ������ȡ�����ŵı��⣬���ݣ���ʾ�ڽ����� { News b = bean.getEntity(); MainActivity.news = b; MainActivity.newsDetail = null; } ctx.jumpToNewsContentFregment(); } }.start(); } /** * ��ȡ������Ҫ�š���tab1��ʹ���ر𷽷� */ private void getNanyanNews() { new Thread() { @Override public void run() { String res = null; try { handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_SHOW); res = OkHttpUtils.getInstance().Get( "http://www.pkusz.edu.cn/api/get_news.php?pageSize=" + pageSize); 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���� NewsList nl = JSON.parseObject(res, NewsList.class); // ����ֵ������JSON��ʽ�����ݣ���Ҫ��������� if (res.trim().length() == 0) { toastMsg = "��ȡ��������ʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); return; } String code = nl.getCode(); if ("OK".equals(code)) { // ��������˵���������������ݣ���Ҫ�������ȡ���ŵı��� nanyanNewsList = nl.getList(); for (NewsItem n : nanyanNewsList) { System.out.println("����Ҫ�ű��⣺" + n.getThumb()); } // // ����Щ���Ŷ���洢��sp�� // MainActivity.newsList = list; // ʹ��handlerȥ֪ͨ���̸߳���listview handler.sendEmptyMessage(HandlerOrder.UPDATE_LISTVIEW); } } }.start(); } // �������װ�Ӻ�̨һ����ȡ�������ݵķ��� private void getNanyanNewsContent(final String id) { new Thread() { @Override public void run() { // ����get���� String res = null; try { handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_SHOW); res = OkHttpUtils.getInstance() .Get("http://www.pkusz.edu.cn/api/get_news.php?id=" + id); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); } catch (Exception e) { e.printStackTrace(); } System.out.println("��������res��" + res); NewsDetailRes bean = JSON.parseObject(res, NewsDetailRes.class); // ����ֵ������JSON��ʽ�����ݣ���Ҫ��������� if (res.trim().length() == 0) { toastMsg = "��ȡ��������ʧ��"; handler.sendEmptyMessage(HandlerOrder.TOAST); handler.sendEmptyMessage(HandlerOrder.PROCESSBAR_HIDE); return; } String app_result_key = bean.getCode(); if ("OK".equals(app_result_key))// ���������������ŵ�����, // ��ô��Ҫ������ȡ�����ŵı��⣬���ݣ���ʾ�ڽ����� { NewsDetail b = bean.getDetail(); MainActivity.news = null; MainActivity.newsDetail = b; } ctx.jumpToNewsContentFregment(); } }.start(); } /** * �������������أ�����ˢ����ش��� */ @Override public void onRefresh()// ����ˢ�� { // toastMsg = "��⵽����ˢ�¶���"; // handler.sendEmptyMessage(HandlerOrder.TOAST); pageSize = 5; // ˢ������ if (type == 1) { getNanyanNews(); } else { getNewsList(type); } } @Override public void onLoadMore()// ���Ǽ��ظ��� { // toastMsg = "��⵽�������ض���"; // handler.sendEmptyMessage(HandlerOrder.TOAST); pageSize += sizeStep; if (type == 1) { getNanyanNews(); } else { getNewsList(type); } } }