package com.kaixin.android.menu; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.kaixin.android.KXApplication; import com.kaixin.android.R; import com.kaixin.android.result.ViewedResult; import com.kaixin.android.ui.base.FlipperLayout.OnOpenListener; import com.kaixin.android.utils.CommonUtils; import com.kaixin.android.utils.TextUtil; /** * 菜单转帖类 * * @author gyz * */ public class Viewed { private Context mContext; private KXApplication mKXApplication; private View mViewed; private Button mMenu; private Button mRefresh; private ListView mDisplay; private Button mFriends; private Button mHot; private ViewedAdapter mAdapter; private OnOpenListener mOnOpenListener; // 是否为好友转帖 private boolean mIsFriends = true; public Viewed(Context context, KXApplication application) { mContext = context; mKXApplication = application; mViewed = LayoutInflater.from(context).inflate(R.layout.viewed, null); findViewById(); setListener(); init(); } private void findViewById() { mMenu = (Button) mViewed.findViewById(R.id.viewed_menu); mRefresh = (Button) mViewed.findViewById(R.id.viewed_refresh); mDisplay = (ListView) mViewed.findViewById(R.id.viewed_display); mFriends = (Button) mViewed.findViewById(R.id.viewed_friends); mHot = (Button) mViewed.findViewById(R.id.viewed_hot); if(!CommonUtils.isNetWorkConnected(mKXApplication)){ mViewed.findViewById(R.id.warnning_layout).setVisibility(View.VISIBLE); }else{ mViewed.findViewById(R.id.warnning_layout).setVisibility(View.GONE); } } private void setListener() { mMenu.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (mOnOpenListener != null) { mOnOpenListener.open(); } } }); mRefresh.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 暂时不做任何操作 } }); mFriends.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (!mIsFriends) { mIsFriends = true; mFriends.setBackgroundResource(R.drawable.bottomtabbutton_leftred); mHot.setBackgroundResource(R.drawable.bottomtabbutton_rightwhite); mAdapter = new ViewedAdapter( mKXApplication.mMyViewedResults); mDisplay.setAdapter(mAdapter); } } }); mHot.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (mIsFriends) { mIsFriends = false; mFriends.setBackgroundResource(R.drawable.bottomtabbutton_leftwhite); mHot.setBackgroundResource(R.drawable.bottomtabbutton_rightred); mAdapter = new ViewedAdapter( mKXApplication.mViewedHotResults); mDisplay.setAdapter(mAdapter); } } }); } private void init() { // 获取好友转帖数据 getViewed(); // 获取热门转帖数据 getViewedHot(); // 添加适配器 mAdapter = new ViewedAdapter(mKXApplication.mMyViewedResults); mDisplay.setAdapter(mAdapter); } /** * 获取好友转帖数据 */ private void getViewed() { if (mKXApplication.mMyViewedResults.isEmpty()) { InputStream inputStream; try { inputStream = mContext.getAssets().open("data/my_viewed.KX"); String json = new TextUtil(mKXApplication) .readTextFile(inputStream); JSONArray array = new JSONArray(json); ViewedResult result = null; for (int i = 0; i < array.length(); i++) { result = new ViewedResult(); result.setTitle(array.getJSONObject(i).getString("title")); result.setTime(array.getJSONObject(i).getString("time")); result.setOwners_name(array.getJSONObject(i) .getJSONObject("owners").getString("name")); result.setOwners_uid(array.getJSONObject(i) .getJSONObject("owners").getString("uid")); result.setOwners_avatar(array.getJSONObject(i) .getJSONObject("owners").getInt("avatar")); result.setImage(array.getJSONObject(i).getInt("image")); result.setType(array.getJSONObject(i).getString("type")); result.setContent(array.getJSONObject(i).getString( "content")); result.setForwarding_count(array.getJSONObject(i) .getString("forwarding_count")); mKXApplication.mMyViewedResults.add(result); } } catch (Exception e) { e.printStackTrace(); } } } /** * 获取热门转帖数据 */ private void getViewedHot() { if (mKXApplication.mViewedHotResults.isEmpty()) { InputStream inputStream; try { inputStream = mContext.getAssets().open("data/viewed_hot.KX"); String json = new TextUtil(mKXApplication) .readTextFile(inputStream); JSONArray array = new JSONArray(json); ViewedResult result = null; for (int i = 0; i < array.length(); i++) { result = new ViewedResult(); result.setTitle(array.getJSONObject(i).getString("title")); result.setTime(array.getJSONObject(i).getString("time")); result.setOwners_name(array.getJSONObject(i) .getJSONObject("owners").getString("name")); result.setOwners_uid(array.getJSONObject(i) .getJSONObject("owners").getString("uid")); result.setOwners_avatar(array.getJSONObject(i) .getJSONObject("owners").getInt("avatar")); result.setImage(array.getJSONObject(i).getInt("image")); result.setType(array.getJSONObject(i).getString("type")); result.setContent(array.getJSONObject(i).getString( "content")); result.setForwarding_count(array.getJSONObject(i) .getString("forwarding_count")); mKXApplication.mViewedHotResults.add(result); } } catch (Exception e) { e.printStackTrace(); } } } private class ViewedAdapter extends BaseAdapter { private List<ViewedResult> mResults; public ViewedAdapter(List<ViewedResult> results) { if (results != null) { mResults = results; } else { mResults = new ArrayList<ViewedResult>(); } } public int getCount() { return mResults.size(); } public Object getItem(int position) { return mResults.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate( R.layout.viewed_item, null); holder = new ViewHolder(); holder.type = (ImageView) convertView .findViewById(R.id.viewed_item_type); holder.title = (TextView) convertView .findViewById(R.id.viewed_item_title); holder.image = (ImageView) convertView .findViewById(R.id.viewed_item_image); holder.time = (TextView) convertView .findViewById(R.id.viewed_item_time); holder.owners = (TextView) convertView .findViewById(R.id.viewed_item_owners); holder.content = (TextView) convertView .findViewById(R.id.viewed_item_content); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } ViewedResult result = mResults.get(position); if (result.getType().equals("url")) { holder.type.setImageResource(R.drawable.repastedefault); } else if (result.getType().equals("video")) { holder.type.setImageResource(R.drawable.othervideo); } holder.title.setText(result.getTitle()); holder.time.setText(result.getTime()); holder.content.setText(result.getContent()); if (mIsFriends) { holder.image.setImageBitmap(mKXApplication.getViewed(result .getImage())); holder.owners.setText(result.getOwners_name() + "转帖"); } else { holder.image.setImageBitmap(mKXApplication.getViewedHot(result .getImage())); holder.owners.setText(result.getForwarding_count() + "次转帖"); } return convertView; } class ViewHolder { ImageView type; TextView title; ImageView image; TextView time; TextView owners; TextView content; } } public View getView() { return mViewed; } public void setOnOpenListener(OnOpenListener onOpenListener) { mOnOpenListener = onOpenListener; } }