社区问题列表支持跳转至回答编辑页面

This commit is contained in:
kehaoyuan@ghzhushou.com
2020-02-20 15:59:25 +08:00
parent 7d2835bb83
commit 3d64d3c90e
7 changed files with 34 additions and 16 deletions

View File

@ -41,7 +41,7 @@ class UnansweredAdapter(context: Context,
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder is CommunityQuestionViewHolder) {
val questions = mEntityList[position]
holder.bindQuestionViewHolder(questions)
holder.bindQuestionViewHolder(questions, mEntrance, mPath)
holder.itemView.setOnClickListener {
mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.id, mEntrance, mPath, mSpecialColumn))
}

View File

@ -58,9 +58,9 @@ data class ArticleEntity(
@Parcelize
data class Count(
var comment: Int = -1,
var vote: Int = -1,
var answer: Int = -1) : Parcelable
var comment: Int = 0,
var vote: Int = 0,
var answer: Int = 0) : Parcelable
@Parcelize
data class TimeEntity(var create: Long = 0,

View File

@ -16,7 +16,7 @@ data class Questions(@SerializedName("_id")
var communityName: String? = "", // 只在问题列表有效
@SerializedName("answer_count")
var answerCount: Int = 0,
var description: String? = null,
var description: String? = "",
var videos: List<CommunityVideoEntity> = arrayListOf(),
var images: ArrayList<String> = ArrayList(),
val time: Long = 0,

View File

@ -60,7 +60,7 @@ class ConcernQuestionsAdapter extends ListAdapter<Questions> {
switch (getItemViewType(position)) {
case ItemViewType.ITEM_BODY:
Questions questions = mEntityList.get(position);
((CommunityQuestionViewHolder) holder).bindMyQuestionViewHolder(questions);
((CommunityQuestionViewHolder) holder).bindMyQuestionViewHolder(questions, mEntrance, "我的问答-关注问题");
holder.itemView.setOnClickListener(v -> {
if (mContext instanceof Activity) {
Intent intent = QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, "我的问答-关注问题", true);

View File

@ -58,7 +58,7 @@ public class MyQuestionsAdapter extends ListAdapter<Questions> {
switch (getItemViewType(position)) {
case ItemViewType.ITEM_BODY:
Questions questions = mEntityList.get(position);
((CommunityQuestionViewHolder) holder).bindMyQuestionViewHolder(questions);
((CommunityQuestionViewHolder) holder).bindMyQuestionViewHolder(questions,mEntrance,"我的光环-我的问答-我的问题");
holder.itemView.setOnClickListener(v -> mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, "我的光环-我的问答-我的问题")));
break;
case ItemViewType.ITEM_FOOTER:

View File

@ -1,7 +1,9 @@
package com.gh.gamecenter.qa.newest;
import android.content.Context;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
@ -62,7 +64,7 @@ public class AskQuestionsNewBodyAdapter extends ListAdapter<Questions> {
switch (getItemViewType(position)) {
case ItemViewType.ITEM_BODY:
Questions questions = mEntityList.get(position);
((CommunityQuestionViewHolder) holder).bindQuestionViewHolder(questions);
((CommunityQuestionViewHolder) holder).bindQuestionViewHolder(questions, mEntrance, "问答-问题");
holder.itemView.setOnClickListener(v -> mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.getId(), mEntrance, "问答-问题")));
break;

View File

@ -4,23 +4,39 @@ import com.gh.base.BaseRecyclerViewHolder
import com.gh.common.util.NewsUtils
import com.gh.common.util.NumberUtils
import com.gh.gamecenter.databinding.CommunityQuestionItemBinding
import com.gh.gamecenter.manager.UserManager
import com.gh.gamecenter.qa.answer.edit.AnswerEditActivity
import com.gh.gamecenter.qa.entity.Questions
import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity
import com.gh.gamecenter.qa.questions.detail.QuestionsDetailFragment
class CommunityQuestionViewHolder(val binding: CommunityQuestionItemBinding) : BaseRecyclerViewHolder<Any>(binding.root) {
fun bindQuestionViewHolder(questions: Questions) {
binding.title.text = questions.title
fun bindQuestionViewHolder(questions: Questions, entrance: String, path: String) {
bindViewHolder(questions, entrance, path)
binding.endDesc.text = NewsUtils.getFormattedTime(questions.time)
binding.answerCount.text = if (questions.answerCount>0) {
NumberUtils.transSimpleCount(questions.answerCount)
} else "回答"
}
fun bindMyQuestionViewHolder(questions: Questions) {
binding.title.text = questions.title
fun bindMyQuestionViewHolder(questions: Questions, entrance: String, path: String) {
bindViewHolder(questions, entrance, path)
binding.endDesc.text = questions.communityName
binding.answerCount.text = if (questions.answerCount>0) {
}
private fun bindViewHolder(questions: Questions, entrance: String, path: String) {
binding.title.text = questions.title
binding.answerCount.text = if (questions.answerCount > 0) {
NumberUtils.transSimpleCount(questions.answerCount)
} else "回答"
binding.answerCount.setOnClickListener {
if (questions.answerCount > 0) {
itemView.context.startActivity(QuestionsDetailActivity.getIntent(itemView.context, questions.id, entrance, path))
} else {
val communityName = if (questions.communityName.isNullOrEmpty()) UserManager.getInstance().community.name
else questions.communityName
itemView.context.startActivity(AnswerEditActivity.getIntent(itemView.context, questions, communityName))
}
}
}
}