103 lines
3.4 KiB
Java
103 lines
3.4 KiB
Java
package com.gh.gamecenter.ask;
|
|
|
|
import android.content.Context;
|
|
import android.support.v7.widget.RecyclerView;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
|
|
import com.gh.base.OnListClickListener;
|
|
import com.gh.common.constant.ItemViewType;
|
|
import com.gh.gamecenter.R;
|
|
import com.gh.gamecenter.adapter.viewholder.FooterViewHolder;
|
|
import com.gh.gamecenter.ask.entity.AskEntity;
|
|
import com.gh.gamecenter.ask.entity.AskQuestionsEntity;
|
|
import com.gh.gamecenter.baselist.ListAdapter;
|
|
import com.gh.gamecenter.baselist.LoadStatus;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Created by khy on 5/12/17.
|
|
*/
|
|
|
|
public class AskQuestionsBodyAdapter extends ListAdapter {
|
|
|
|
private OnListClickListener mListClickListener;
|
|
|
|
private List<AskEntity> mEntityList;
|
|
|
|
|
|
public AskQuestionsBodyAdapter(Context context, OnListClickListener listClickListener) {
|
|
super(context);
|
|
mListClickListener = listClickListener;
|
|
}
|
|
|
|
@Override
|
|
protected <T> void provideListData(List<T> listData) {
|
|
mEntityList = (List<AskEntity>) listData;
|
|
notifyDataSetChanged();
|
|
}
|
|
|
|
@Override
|
|
protected void loadChange(LoadStatus status) {
|
|
switch (status) {
|
|
case OVER:
|
|
mIsOver = true;
|
|
break;
|
|
case ERROR:
|
|
mIsNetworkError = true;
|
|
break;
|
|
case RETRY:
|
|
mIsNetworkError = false;
|
|
break;
|
|
}
|
|
notifyItemChanged(getItemCount() - 1);
|
|
}
|
|
|
|
@Override
|
|
public int getItemViewType(int position) {
|
|
if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER;
|
|
return ItemViewType.ITEM_BODY;
|
|
}
|
|
|
|
@Override
|
|
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
View view;
|
|
switch (viewType) {
|
|
case ItemViewType.ITEM_FOOTER:
|
|
view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false);
|
|
return new FooterViewHolder(view, null, mListClickListener);
|
|
case ItemViewType.ITEM_BODY:
|
|
view = mLayoutInflater.inflate(R.layout.ask_questions_item, parent, false);
|
|
return new AskQuestionItemViewHolder(view, null, mListClickListener);
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
|
switch (getItemViewType(position)) {
|
|
case ItemViewType.ITEM_BODY:
|
|
AskEntity askEntity = mEntityList.get(position);
|
|
AskQuestionItemViewHolder askHolder = (AskQuestionItemViewHolder) holder;
|
|
askHolder.mAnswerCount.setText(mContext.getString(R.string.ask_answer_count, askEntity.getAnswers()));
|
|
AskQuestionsEntity question = askEntity.getQuestion();
|
|
if (question != null) {
|
|
askHolder.mTitle.setText(question.getTitle());
|
|
}
|
|
break;
|
|
case ItemViewType.ITEM_FOOTER:
|
|
FooterViewHolder footerViewHolder = (FooterViewHolder) holder;
|
|
footerViewHolder.initItemPadding();
|
|
footerViewHolder.initFooterViewHolder(mIsNetworkError, mIsOver, R.string.ask_loadover_hint);
|
|
break;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int getItemCount() {
|
|
return mEntityList == null || mEntityList.isEmpty() ? 0 : mEntityList.size() + FOOTER_ITEM_COUNT;
|
|
}
|
|
}
|