package tk.djcrazy.MyCC98.adapter;
import java.util.List;
import com.google.inject.Inject;
import tk.djcrazy.MyCC98.BoardListActivity;
import tk.djcrazy.MyCC98.PostContentsJSActivity;
import tk.djcrazy.MyCC98.PostListActivity;
import tk.djcrazy.MyCC98.R;
import tk.djcrazy.MyCC98.util.ViewUtils;
import tk.djcrazy.libCC98.CC98ClientImpl;
import tk.djcrazy.libCC98.data.BoardEntity;
import tk.djcrazy.libCC98.util.DateFormatUtil;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.DataSetObserver;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class BoardListAdapter extends BaseItemListAdapter<BoardEntity> {
private final class ListItemView {
public TextView boardName;
public TextView lastReplyTopicName;
public TextView lastReplyAuthor;
public TextView lastReplyTime;
public TextView postNumberToday;
public View boardNameClickable;
public View lastReplyNameClickable;
public View lastReplyTimeClickable;
}
public BoardListAdapter(Activity context, List<BoardEntity> list) {
super(context, list);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ListItemView listItemView = null;
BoardEntity entity = items.get(position);
if (convertView == null) {
listItemView = new ListItemView();
convertView = inflater.inflate(
R.layout.personal_board_list_item, null);
findViews(convertView, listItemView);
convertView.setTag(listItemView);
} else {
listItemView = (ListItemView) convertView.getTag();
}
listItemView.boardName.setText(entity.getBoardName()+ entity.getChildBoardString());
listItemView.postNumberToday.setText(String.valueOf(entity.getPostNumberToday()));
if (entity.getLastReplyTime() == null) {
ViewUtils.setGone(listItemView.lastReplyAuthor, true);
ViewUtils.setGone(listItemView.lastReplyTime, true);
listItemView.lastReplyTopicName.setText("认证论坛,请认证用户进入浏览");
setListeners(position, listItemView);
listItemView.lastReplyTopicName.setClickable(false);
listItemView.lastReplyTimeClickable.setClickable(false);
} else {
listItemView.lastReplyTopicName.setClickable(true);
listItemView.lastReplyTimeClickable.setClickable(true);
ViewUtils.setGone(listItemView.lastReplyAuthor, false);
ViewUtils.setGone(listItemView.lastReplyTime, false);
listItemView.lastReplyTopicName.setText(entity
.getLastReplyTopicName());
listItemView.lastReplyAuthor.setText(entity
.getLastReplyAuthor());
listItemView.lastReplyTime.setText(DateFormatUtil
.convertDateToString(
entity.getLastReplyTime(), true));
setListeners(position, listItemView);
}
return convertView;
}
/**
* @param convertView
* @param listItemView
*/
private void findViews(View convertView, ListItemView listItemView) {
// 获取控件对象
listItemView.boardName = (TextView) convertView
.findViewById(R.id.board_name);
listItemView.lastReplyTopicName = (TextView) convertView
.findViewById(R.id.last_reply_topic_name);
listItemView.lastReplyAuthor = (TextView) convertView
.findViewById(R.id.last_reply_author);
listItemView.lastReplyTime = (TextView) convertView
.findViewById(R.id.last_reply_time);
listItemView.postNumberToday = (TextView) convertView
.findViewById(R.id.topic_number_today);
listItemView.boardNameClickable = convertView
.findViewById(R.id.board_name_clickable);
listItemView.lastReplyNameClickable = convertView
.findViewById(R.id.last_reply_topic_name);
listItemView.lastReplyTimeClickable = convertView
.findViewById(R.id.last_reply_time_clickable);
}
/**
* @param clickPosition
* @param listItemView
*/
private void setListeners(final int clickPosition, ListItemView listItemView) {
// 注册相应版面时事件处理
listItemView.boardNameClickable
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (items.get(clickPosition).getChildBoardNumber()!=0) {
context.startActivity(BoardListActivity.createIntent(
items.get(clickPosition).getBoardName(), items
.get(clickPosition).getBoardID()));
} else {
context.startActivity(PostListActivity.createIntent(
items.get(clickPosition).getBoardName(), items
.get(clickPosition).getBoardID()));
}
}
});
listItemView.lastReplyNameClickable
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
context.startActivity(PostContentsJSActivity
.createIntent(items.get(clickPosition)
.getLastReplyBoardId(), items.get(clickPosition)
.getLastReplyTopicID(), 1, false));
}
});
listItemView.lastReplyTimeClickable
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
context.startActivity(PostContentsJSActivity
.createIntent(items.get(clickPosition)
.getLastReplyBoardId(), items.get(clickPosition)
.getLastReplyTopicID(), 32767, false));
}
});
}
}