package cn.eoe.app.view; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import cn.eoe.app.R; import cn.eoe.app.biz.BlogsDao; import cn.eoe.app.entity.BlogContentItem; import cn.eoe.app.entity.BlogsCategoryListEntity; import cn.eoe.app.entity.BlogsMoreResponse; import cn.eoe.app.utils.ImageUtil; /** * 博客部分的Fragment * * @author wangxin * */ public class BlogFragment extends BaseListFragment { List<BlogContentItem> items_list = new ArrayList<BlogContentItem>(); private Activity mActivity; private String more_url; private BlogsCategoryListEntity loadMoreEntity; private MyAdapter mAdapter; public BlogFragment() { } private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case 0: more_url = loadMoreEntity.getMore_url(); mAdapter.appendToList(loadMoreEntity.getItems()); break; } onLoad(); }; }; public BlogFragment(Activity c, BlogsCategoryListEntity categorys) { this.mActivity = c; if (categorys != null) { more_url = categorys.getMore_url(); this.items_list = categorys.getItems(); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); listview.setXListViewListener(this); // construct the RelativeLayout listview.setXListViewListener(this); // construct the RelativeLayout mAdapter = new MyAdapter(); mAdapter.appendToList(items_list); listview.setAdapter(mAdapter); listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub BlogContentItem item = (BlogContentItem) mAdapter .getItem(position - 1); startDetailActivity(mActivity, item.getDetail_url(), "博客", item.getTitle()); } }); return view; } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } class MyAdapter extends BaseAdapter { List<BlogContentItem> mList = new ArrayList<BlogContentItem>(); public MyAdapter() { } public void appendToList(List<BlogContentItem> lists) { if (lists == null) { return; } mList.addAll(lists); notifyDataSetChanged(); } @Override public int getCount() { // TODO Auto-generated method stub return mList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return mList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder; BlogContentItem item = mList.get(position); if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.blogs_item_layout, null); holder.header_ = (TextView) convertView .findViewById(R.id.tx_header_title); holder.title_ = (TextView) convertView .findViewById(R.id.txt_title); holder.short_ = (TextView) convertView .findViewById(R.id.txt_short_content); holder.img_thu = (ImageView) convertView .findViewById(R.id.img_thu); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.header_.setText(item.getName()); holder.title_.setText(item.getTitle()); holder.short_.setText(item.getShort_content()); String url = item.getHead_image_url().replaceAll("=small", "=middle"); if (url.equals(null) || url.equals("")) { holder.img_thu.setVisibility(View.GONE); } else { holder.img_thu.setVisibility(View.VISIBLE); ImageUtil.setThumbnailView(url, holder.img_thu, mActivity, callback1, false); } return convertView; } } static class ViewHolder { public TextView header_; public TextView title_; public TextView short_; public ImageView img_thu; } @Override public void onRefresh() { // TODO Auto-generated method stub onLoad(); } @Override public void onLoadMore() { // TODO Auto-generated method stub if (more_url==null || more_url.equals("")) { mHandler.sendEmptyMessage(1); return; } else { new Thread() { @Override public void run() { BlogsMoreResponse response = new BlogsDao(mActivity) .getMore(more_url); if (response != null) { loadMoreEntity = response.getResponse(); mHandler.sendEmptyMessage(0); } } }.start(); } } }