package org.qinshuihepan.bbs.ui.adapter; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.support.v4.widget.CursorAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import org.qinshuihepan.bbs.R; import org.qinshuihepan.bbs.model.BasePost; import org.qinshuihepan.bbs.ui.PostContentActivity; import org.qinshuihepan.bbs.util.sharedpreference.Athority; import butterknife.ButterKnife; import butterknife.InjectView; /** * Created by liurongchan on 14-4-25. */ public class PostsAdapter extends CursorAdapter { private static final int LEFT_STRIPS[] = {R.drawable.u47, R.drawable.u67, R.drawable.u87, R.drawable.u107, R.drawable.u127, R.drawable.u147}; private LayoutInflater mLayoutInflater; private ListView mListView; public PostsAdapter(Context context, ListView listView) { super(context, null, false); mLayoutInflater = ((Activity) context).getLayoutInflater(); mListView = listView; } @Override public BasePost getItem(int position) { mCursor.moveToPosition(position); return BasePost.fromCursor(mCursor, BasePost.POST); } @Override public View newView(Context context, Cursor cursor, ViewGroup viewGroup) { return mLayoutInflater.inflate(R.layout.listitem_post, null); } @Override public void bindView(View view, Context context, Cursor cursor) { Holder holder = getHolder(view); view.setEnabled(!mListView.isItemChecked(cursor.getPosition() + mListView.getHeaderViewsCount())); final BasePost post = BasePost.fromCursor(cursor, BasePost.POST); int resid = LEFT_STRIPS[(int) (Math.random() * 6)]; holder.left_strip.setImageResource(resid); holder.title.setText(post.title); holder.content.setText(post.content); holder.time.setText(post.time); holder.comment_count.setText(String.valueOf(post.comment_count)); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(mContext, PostContentActivity.class); intent.putExtra(PostContentActivity.FID, post.fid); intent.putExtra(PostContentActivity.TID, post.tid); intent.putExtra(PostContentActivity.TITLE, post.title); mContext.startActivity(intent); } }); } private Holder getHolder(final View view) { Holder holder = (Holder) view.getTag(); if (holder == null) { holder = new Holder(view); view.setTag(holder); } return holder; } static class Holder { @InjectView(R.id.left_strip) ImageView left_strip; @InjectView(R.id.title) TextView title; @InjectView(R.id.content) TextView content; @InjectView(R.id.time) TextView time; @InjectView(R.id.comment_count) TextView comment_count; public Holder(View view) { ButterKnife.inject(this, view); } } }