Files
assistant-android/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsBodyAdapter.java
2017-12-12 10:22:16 +08:00

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;
}
}