parent
44e6210c38
commit
bf84559ef2
@ -1,188 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.Button; |
||||
import android.widget.ImageView; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.activity.NovelReadActivity; |
||||
import com.novel.read.model.db.CollBookBean; |
||||
import com.novel.read.utlis.GlideImageLoader; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
public class BookAdapter extends RecyclerView.Adapter { |
||||
|
||||
private List<CollBookBean> mList; |
||||
private Context mContext; |
||||
private final int VALUE_ITEM = 100; //正常item
|
||||
private final int EMPTY_ITEM = 101; //空白item
|
||||
private OnItemClickListener mClickListener; |
||||
private boolean mEdit; |
||||
|
||||
public BookAdapter(List<CollBookBean> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view; |
||||
if (i == VALUE_ITEM) { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} else if (i == EMPTY_ITEM) { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_add_book, viewGroup, false); |
||||
return new EmptyHolder(view); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { |
||||
if (viewHolder instanceof ViewHolder) { |
||||
if (mEdit) { //编辑模式
|
||||
((ViewHolder) viewHolder).mIvCheck.setSelected(mList.get(i).isSelect()); |
||||
((ViewHolder) viewHolder).mIvCheck.setVisibility(View.VISIBLE); |
||||
((ViewHolder) viewHolder).mTvBookName.setText(mList.get(i).getTitle()); |
||||
((ViewHolder) viewHolder).mTvBookAuthor.setText(mList.get(i).getAuthor()); |
||||
if (mList.get(i).isUpdate()) { |
||||
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.VISIBLE); |
||||
} else { |
||||
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.GONE); |
||||
} |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext, mList.get(i).getCover(), ((ViewHolder) viewHolder).mIvBook); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
((ViewHolder) viewHolder).mIvCheck.setSelected(!mList.get(i).isSelect()); |
||||
mList.get(i).setSelect(!mList.get(i).isSelect()); |
||||
} |
||||
}); |
||||
} else { //正常模式
|
||||
((ViewHolder) viewHolder).mIvCheck.setVisibility(View.GONE); |
||||
if (mList.size() == i) { //最后的条目
|
||||
((ViewHolder) viewHolder).mTvBookName.setText(""); |
||||
((ViewHolder) viewHolder).mTvBookAuthor.setText(""); |
||||
((ViewHolder) viewHolder).mIvBook.setImageResource(R.drawable.ic_book_add); |
||||
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.GONE); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
mClickListener.onItemClick(view, i); |
||||
} |
||||
}); |
||||
} else { |
||||
((ViewHolder) viewHolder).mTvBookName.setText(mList.get(i).getTitle()); |
||||
((ViewHolder) viewHolder).mTvBookAuthor.setText(mList.get(i).getAuthor()); |
||||
if (mList.get(i).isUpdate()) { |
||||
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.VISIBLE); |
||||
} else { |
||||
((ViewHolder) viewHolder).mIvGeng.setVisibility(View.GONE); |
||||
} |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext, mList.get(i).getCover(), ((ViewHolder) viewHolder).mIvBook); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
Intent intent = new Intent(mContext, NovelReadActivity.class); |
||||
intent.putExtra(NovelReadActivity.EXTRA_IS_COLLECTED, true); |
||||
intent.putExtra(NovelReadActivity.EXTRA_COLL_BOOK, mList.get(i)); |
||||
mContext.startActivity(intent); |
||||
} |
||||
}); |
||||
} |
||||
} |
||||
} else if (viewHolder instanceof EmptyHolder) { //空条目
|
||||
((EmptyHolder) viewHolder).mBtnAdd.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
mClickListener.onItemClick(view, i); |
||||
} |
||||
}); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
if (mList.size() == 0) { |
||||
return 1; |
||||
} |
||||
if (mEdit) { |
||||
return mList.size(); |
||||
} else { |
||||
return mList.size() + 1; |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int getItemViewType(int position) { |
||||
if (mList == null || mList.size() == 0) { |
||||
return EMPTY_ITEM; |
||||
} else { |
||||
return VALUE_ITEM; |
||||
} |
||||
|
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder { |
||||
ImageView mIvBook; |
||||
TextView mTvBookName, mTvBookAuthor; |
||||
ImageView mIvCheck; |
||||
ImageView mIvGeng; |
||||
|
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mIvBook = itemView.findViewById(R.id.iv_book); |
||||
mTvBookName = itemView.findViewById(R.id.tv_book_name); |
||||
mTvBookAuthor = itemView.findViewById(R.id.tv_book_author); |
||||
mIvCheck = itemView.findViewById(R.id.iv_check); |
||||
mIvGeng = itemView.findViewById(R.id.iv_geng); |
||||
} |
||||
} |
||||
|
||||
static class EmptyHolder extends RecyclerView.ViewHolder { |
||||
Button mBtnAdd; |
||||
|
||||
public EmptyHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mBtnAdd = itemView.findViewById(R.id.btn_add); |
||||
} |
||||
} |
||||
|
||||
public void setOnItemClickListener(OnItemClickListener mListener) { |
||||
this.mClickListener = mListener; |
||||
} |
||||
|
||||
|
||||
public interface OnItemClickListener { |
||||
void onItemClick(View view, int pos); |
||||
} |
||||
|
||||
public void setEdit(boolean edit) { //开启编辑模式
|
||||
mEdit = edit; |
||||
notifyDataSetChanged(); |
||||
} |
||||
|
||||
public List<CollBookBean> getSelectList() { |
||||
List<CollBookBean> collBookBeans = new ArrayList<>(); |
||||
for (int i = 0; i < mList.size(); i++) { |
||||
if (mList.get(i).isSelect()) { |
||||
collBookBeans.add(mList.get(i)); |
||||
} |
||||
} |
||||
return collBookBeans; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,165 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.Button |
||||
import android.widget.ImageView |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.activity.NovelReadActivity |
||||
import com.novel.read.model.db.CollBookBean |
||||
import com.novel.read.utlis.GlideImageLoader |
||||
|
||||
import java.util.ArrayList |
||||
|
||||
class BookAdapter(private val mList: List<CollBookBean>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { |
||||
private var mContext: Context? = null |
||||
|
||||
private var mClickListener: OnItemClickListener? = null |
||||
private var mEdit: Boolean = false |
||||
|
||||
val selectList: List<CollBookBean> |
||||
get() { |
||||
val collBookBeans = ArrayList<CollBookBean>() |
||||
for (i in mList.indices) { |
||||
if (mList[i].isSelect) { |
||||
collBookBeans.add(mList[i]) |
||||
} |
||||
} |
||||
return collBookBeans |
||||
} |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerView.ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view: View |
||||
if (i == VALUE_ITEM) { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} else if (i == EMPTY_ITEM) { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_add_book, viewGroup, false) |
||||
return EmptyHolder(view) |
||||
} |
||||
throw IllegalArgumentException() |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) { |
||||
if (viewHolder is ViewHolder) { |
||||
if (mEdit) { //编辑模式 |
||||
viewHolder.mIvCheck.isSelected = mList[i].isSelect |
||||
viewHolder.mIvCheck.visibility = View.VISIBLE |
||||
viewHolder.mTvBookName.text = mList[i].title |
||||
viewHolder.mTvBookAuthor.text = mList[i].author |
||||
if (mList[i].isUpdate) { |
||||
viewHolder.mIvGeng.visibility = View.VISIBLE |
||||
} else { |
||||
viewHolder.mIvGeng.visibility = View.GONE |
||||
} |
||||
GlideImageLoader.displayCornerImage(mContext!!, mList[i].cover, viewHolder.mIvBook) |
||||
viewHolder.itemView.setOnClickListener { |
||||
viewHolder.mIvCheck.isSelected = !mList[i].isSelect |
||||
mList[i].isSelect = !mList[i].isSelect |
||||
} |
||||
} else { //正常模式 |
||||
viewHolder.mIvCheck.visibility = View.GONE |
||||
if (mList.size == i) { //最后的条目 |
||||
viewHolder.mTvBookName.text = "" |
||||
viewHolder.mTvBookAuthor.text = "" |
||||
viewHolder.mIvBook.setImageResource(R.drawable.ic_book_add) |
||||
viewHolder.mIvGeng.visibility = View.GONE |
||||
viewHolder.itemView.setOnClickListener { view -> |
||||
mClickListener!!.onItemClick( |
||||
view, |
||||
i |
||||
) |
||||
} |
||||
} else { |
||||
viewHolder.mTvBookName.text = mList[i].title |
||||
viewHolder.mTvBookAuthor.text = mList[i].author |
||||
if (mList[i].isUpdate) { |
||||
viewHolder.mIvGeng.visibility = View.VISIBLE |
||||
} else { |
||||
viewHolder.mIvGeng.visibility = View.GONE |
||||
} |
||||
GlideImageLoader.displayCornerImage( |
||||
mContext!!, |
||||
mList[i].cover, |
||||
viewHolder.mIvBook |
||||
) |
||||
viewHolder.itemView.setOnClickListener { |
||||
val intent = Intent(mContext, NovelReadActivity::class.java) |
||||
intent.putExtra(NovelReadActivity.EXTRA_IS_COLLECTED, true) |
||||
intent.putExtra(NovelReadActivity.EXTRA_COLL_BOOK, mList[i]) |
||||
mContext!!.startActivity(intent) |
||||
} |
||||
} |
||||
} |
||||
} else if (viewHolder is EmptyHolder) { //空条目 |
||||
viewHolder.mBtnAdd.setOnClickListener { view -> mClickListener!!.onItemClick(view, i) } |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
if (mList.isEmpty()) { |
||||
return 1 |
||||
} |
||||
return if (mEdit) { |
||||
mList.size |
||||
} else { |
||||
mList.size + 1 |
||||
} |
||||
} |
||||
|
||||
override fun getItemViewType(position: Int): Int { |
||||
return if (mList.isEmpty()) { |
||||
EMPTY_ITEM |
||||
} else { |
||||
VALUE_ITEM |
||||
} |
||||
|
||||
} |
||||
|
||||
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book) |
||||
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name) |
||||
var mTvBookAuthor: TextView = itemView.findViewById(R.id.tv_book_author) |
||||
var mIvCheck: ImageView = itemView.findViewById(R.id.iv_check) |
||||
var mIvGeng: ImageView = itemView.findViewById(R.id.iv_geng) |
||||
|
||||
} |
||||
|
||||
internal class EmptyHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mBtnAdd: Button = itemView.findViewById(R.id.btn_add) |
||||
|
||||
} |
||||
|
||||
fun setOnItemClickListener(mListener: OnItemClickListener) { |
||||
this.mClickListener = mListener |
||||
} |
||||
|
||||
|
||||
interface OnItemClickListener { |
||||
fun onItemClick(view: View, pos: Int) |
||||
} |
||||
|
||||
fun setEdit(edit: Boolean) { //开启编辑模式 |
||||
mEdit = edit |
||||
notifyDataSetChanged() |
||||
} |
||||
|
||||
|
||||
companion object { |
||||
|
||||
private const val VALUE_ITEM = 100 //正常item |
||||
|
||||
private const val EMPTY_ITEM = 101 //空白item |
||||
|
||||
} |
||||
|
||||
} |
@ -1,146 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ImageView; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.LinearLayoutManager; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.activity.NovelBookDetailActivity; |
||||
import com.novel.read.adapter.holder.EmptyHolder; |
||||
import com.novel.read.adapter.holder.MoreHolder; |
||||
import com.novel.read.constants.Constant; |
||||
import com.novel.read.inter.OnLoadMoreListener; |
||||
import com.novel.read.model.protocol.SearchResp; |
||||
import com.novel.read.utlis.GlideImageLoader; |
||||
|
||||
import java.util.List; |
||||
|
||||
import static com.novel.read.constants.Constant.COMMENT_SIZE; |
||||
|
||||
public class BookListAdapter extends RecyclerView.Adapter { |
||||
|
||||
|
||||
private List<SearchResp.BookBean> mList; |
||||
private Context mContext; |
||||
private final int VALUE_ITEM = 100; //正常item
|
||||
private final int EMPTY_ITEM = 101; //空白item
|
||||
private final int PROCESS_ITEM = 102; |
||||
private boolean loadingMore; |
||||
private int lastVisibleItem, totalItemCount; |
||||
private int visibleThreshold = 1; |
||||
private OnLoadMoreListener mOnLoadMoreListener; |
||||
|
||||
public BookListAdapter(List<SearchResp.BookBean> mList, RecyclerView recyclerView) { |
||||
this.mList = mList; |
||||
if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) { |
||||
final LinearLayoutManager llMangager = (LinearLayoutManager) recyclerView.getLayoutManager(); |
||||
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { |
||||
@Override |
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { |
||||
super.onScrolled(recyclerView, dx, dy); |
||||
totalItemCount = llMangager.getItemCount(); |
||||
lastVisibleItem = llMangager.findLastVisibleItemPosition(); |
||||
if (!loadingMore && totalItemCount == (lastVisibleItem + visibleThreshold) && totalItemCount >= (COMMENT_SIZE)) { |
||||
if (mOnLoadMoreListener != null) { |
||||
mOnLoadMoreListener.onLoadMore(); |
||||
} |
||||
} |
||||
} |
||||
}); |
||||
|
||||
} |
||||
} |
||||
|
||||
public void setLoadingMore(boolean loadingMore) { |
||||
this.loadingMore = loadingMore; |
||||
} |
||||
|
||||
public boolean isLoadingMore() { |
||||
return loadingMore; |
||||
} |
||||
|
||||
public void setOnLoadMoreListener(OnLoadMoreListener listener) { |
||||
this.mOnLoadMoreListener = listener; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view; |
||||
if (viewType == VALUE_ITEM) { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_list, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} else if (viewType == EMPTY_ITEM) { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_view, viewGroup, false); |
||||
return new EmptyHolder(view); |
||||
}else if (viewType==PROCESS_ITEM){ |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.load_more_layout, viewGroup, false); |
||||
return new MoreHolder(view); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) { |
||||
if (viewHolder instanceof ViewHolder){ |
||||
SearchResp.BookBean bookBean = mList.get(i); |
||||
((ViewHolder) viewHolder).tvBookName.setText(bookBean.getTitle()); |
||||
((ViewHolder) viewHolder).tvBookAuthor.setText(bookBean.getAuthor()); |
||||
((ViewHolder) viewHolder).tvBookDescription.setText(bookBean.getDescription()); |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext,bookBean.getCover(),((ViewHolder) viewHolder).ivBook); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
Intent intent=new Intent(mContext, NovelBookDetailActivity.class); |
||||
intent.putExtra(Constant.Bundle.BookId, bookBean.getId()); |
||||
mContext.startActivity(intent); |
||||
} |
||||
}); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
if (mList.size() == 0) { |
||||
return 1; |
||||
} |
||||
return mList.size(); |
||||
} |
||||
|
||||
@Override |
||||
public int getItemViewType(int position) { |
||||
if (mList == null || mList.size() == 0) { |
||||
return EMPTY_ITEM; |
||||
} else if (mList.get(position) == null) { |
||||
return PROCESS_ITEM; |
||||
} else { |
||||
return VALUE_ITEM; |
||||
} |
||||
|
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder { |
||||
ImageView ivBook; |
||||
TextView tvBookName; |
||||
TextView tvBookAuthor; |
||||
TextView tvBookDescription; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
ivBook = itemView.findViewById(R.id.iv_book); |
||||
tvBookName = itemView.findViewById(R.id.tv_book_name); |
||||
tvBookAuthor = itemView.findViewById(R.id.tv_book_author); |
||||
tvBookDescription = itemView.findViewById(R.id.tv_book_description); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,127 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.ImageView |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.LinearLayoutManager |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
import com.novel.read.R |
||||
import com.novel.read.activity.NovelBookDetailActivity |
||||
import com.novel.read.adapter.holder.EmptyHolder |
||||
import com.novel.read.adapter.holder.MoreHolder |
||||
import com.novel.read.constants.Constant |
||||
import com.novel.read.constants.Constant.COMMENT_SIZE |
||||
import com.novel.read.inter.OnLoadMoreListener |
||||
import com.novel.read.model.protocol.SearchResp |
||||
import com.novel.read.utlis.GlideImageLoader |
||||
import io.github.lizhangqu.coreprogress.ProgressHelper |
||||
|
||||
class BookListAdapter(private val mList: List<SearchResp.BookBean>, recyclerView: RecyclerView) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { |
||||
private var mContext: Context? = null |
||||
|
||||
var isLoadingMore: Boolean = false |
||||
private var lastVisibleItem: Int = 0 |
||||
private var totalItemCount: Int = 0 |
||||
private val visibleThreshold = 1 |
||||
private var mOnLoadMoreListener: OnLoadMoreListener? = null |
||||
|
||||
init { |
||||
if (recyclerView.layoutManager is LinearLayoutManager) { |
||||
val llMangager = recyclerView.layoutManager as LinearLayoutManager? |
||||
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { |
||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { |
||||
super.onScrolled(recyclerView, dx, dy) |
||||
totalItemCount = llMangager!!.itemCount |
||||
lastVisibleItem = llMangager.findLastVisibleItemPosition() |
||||
if (!isLoadingMore && totalItemCount == lastVisibleItem + visibleThreshold && totalItemCount >= COMMENT_SIZE) { |
||||
if (mOnLoadMoreListener != null) { |
||||
mOnLoadMoreListener!!.onLoadMore() |
||||
} |
||||
} |
||||
} |
||||
}) |
||||
|
||||
} |
||||
} |
||||
|
||||
fun setOnLoadMoreListener(listener: OnLoadMoreListener) { |
||||
this.mOnLoadMoreListener = listener |
||||
} |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): RecyclerView.ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view: View |
||||
return when (viewType) { |
||||
VALUE_ITEM -> { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_list, viewGroup, false) |
||||
ViewHolder(view) |
||||
} |
||||
EMPTY_ITEM -> { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_view, viewGroup, false) |
||||
EmptyHolder(view) |
||||
} |
||||
PROCESS_ITEM -> { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.load_more_layout, viewGroup, false) |
||||
MoreHolder(view) |
||||
} |
||||
else -> throw IllegalArgumentException() |
||||
} |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) { |
||||
if (viewHolder is ViewHolder) { |
||||
val bookBean = mList[i] |
||||
viewHolder.tvBookName.text = bookBean.title |
||||
viewHolder.tvBookAuthor.text = bookBean.author |
||||
viewHolder.tvBookDescription.text = bookBean.description |
||||
GlideImageLoader.displayCornerImage(mContext!!, bookBean.cover!!, viewHolder.ivBook) |
||||
viewHolder.itemView.setOnClickListener { |
||||
val intent = Intent(mContext, NovelBookDetailActivity::class.java) |
||||
intent.putExtra(Constant.Bundle.BookId, bookBean.id) |
||||
mContext!!.startActivity(intent) |
||||
} |
||||
}else if (viewHolder is MoreHolder){ |
||||
viewHolder.bindModule(isLoadingMore) |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return if (mList.isEmpty()) { |
||||
1 |
||||
} else mList.size + 1 |
||||
} |
||||
|
||||
override fun getItemViewType(position: Int): Int { |
||||
if (position == itemCount - 1) { |
||||
return PROCESS_ITEM |
||||
} |
||||
return when { |
||||
mList.isEmpty() -> EMPTY_ITEM |
||||
else -> VALUE_ITEM |
||||
} |
||||
|
||||
} |
||||
|
||||
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var ivBook: ImageView = itemView.findViewById(R.id.iv_book) |
||||
var tvBookName: TextView = itemView.findViewById(R.id.tv_book_name) |
||||
var tvBookAuthor: TextView = itemView.findViewById(R.id.tv_book_author) |
||||
var tvBookDescription: TextView = itemView.findViewById(R.id.tv_book_description) |
||||
} |
||||
|
||||
companion object { |
||||
|
||||
private const val VALUE_ITEM = 100 //正常item |
||||
|
||||
private const val EMPTY_ITEM = 101 //空白item |
||||
|
||||
private const val PROCESS_ITEM = 102 |
||||
} |
||||
|
||||
} |
@ -1,85 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ImageView; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.activity.NovelBookDetailActivity; |
||||
import com.novel.read.constants.Constant; |
||||
import com.novel.read.model.protocol.RecommendListResp; |
||||
import com.novel.read.utlis.GlideImageLoader; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* create by zlj on 2019/6/19 |
||||
* describe: |
||||
*/ |
||||
public class EditRecommendAdapter extends RecyclerView.Adapter<EditRecommendAdapter.ViewHolder> { |
||||
|
||||
private List<RecommendListResp.ListBean> mList; |
||||
private Context mContext; |
||||
public EditRecommendAdapter(List<RecommendListResp.ListBean> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext==null){ |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.rlv_edit_recommend_item, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) { |
||||
RecommendListResp.ListBean listBean = mList.get(i); |
||||
viewHolder.mTvBookName.setText(listBean.getBook_title()); |
||||
viewHolder.mTvAuthor.setText(listBean.getAuthor()); |
||||
viewHolder.mTvDescription.setText(listBean.getDescription()); |
||||
viewHolder.mTvHumanNum.setText(listBean.getHot()); |
||||
viewHolder.mTvLoveNum.setText(listBean.getLike()); |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext,listBean.getBook_cover(),viewHolder.mIvBook); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
Intent intent=new Intent(mContext, NovelBookDetailActivity.class); |
||||
intent.putExtra(Constant.Bundle.BookId, listBean.getBook_id()); |
||||
mContext.startActivity(intent); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
return mList.size(); |
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder{ |
||||
ImageView mIvBook; |
||||
TextView mTvBookName; |
||||
TextView mTvAuthor; |
||||
TextView mTvDescription; |
||||
TextView mTvHumanNum; |
||||
TextView mTvLoveNum; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mIvBook = itemView.findViewById(R.id.iv_book); |
||||
mTvBookName = itemView.findViewById(R.id.tv_book_name); |
||||
mTvAuthor = itemView.findViewById(R.id.tv_book_author); |
||||
mTvDescription = itemView.findViewById(R.id.tv_book_description); |
||||
mTvHumanNum = itemView.findViewById(R.id.tv_human_num); |
||||
mTvLoveNum = itemView.findViewById(R.id.tv_love_look_num); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,62 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.ImageView |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.activity.NovelBookDetailActivity |
||||
import com.novel.read.constants.Constant |
||||
import com.novel.read.model.protocol.RecommendListResp |
||||
import com.novel.read.utlis.GlideImageLoader |
||||
|
||||
/** |
||||
* create by zlj on 2019/6/19 |
||||
* describe: |
||||
*/ |
||||
class EditRecommendAdapter(private val mList: List<RecommendListResp.ListBean>) : RecyclerView.Adapter<EditRecommendAdapter.ViewHolder>() { |
||||
|
||||
private var mContext: Context? = null |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view = LayoutInflater.from(mContext) |
||||
.inflate(R.layout.rlv_edit_recommend_item, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { |
||||
val listBean = mList[i] |
||||
viewHolder.mTvBookName.text = listBean.book_title |
||||
viewHolder.mTvAuthor.text = listBean.author |
||||
viewHolder.mTvDescription.text = listBean.description |
||||
viewHolder.mTvHumanNum.text = listBean.getHot() |
||||
viewHolder.mTvLoveNum.text = listBean.getLike() |
||||
GlideImageLoader.displayCornerImage(mContext!!, listBean.book_cover!!, viewHolder.mIvBook) |
||||
viewHolder.itemView.setOnClickListener { |
||||
val intent = Intent(mContext, NovelBookDetailActivity::class.java) |
||||
intent.putExtra(Constant.Bundle.BookId, listBean.book_id) |
||||
mContext!!.startActivity(intent) |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return mList.size |
||||
} |
||||
|
||||
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book) |
||||
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name) |
||||
var mTvAuthor: TextView = itemView.findViewById(R.id.tv_book_author) |
||||
var mTvDescription: TextView = itemView.findViewById(R.id.tv_book_description) |
||||
var mTvHumanNum: TextView = itemView.findViewById(R.id.tv_human_num) |
||||
var mTvLoveNum: TextView = itemView.findViewById(R.id.tv_love_look_num) |
||||
} |
||||
} |
@ -1,76 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.model.db.SearchListTable; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* create by zlj on 2019/6/17 |
||||
* describe: |
||||
*/ |
||||
public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHolder> { |
||||
|
||||
private List<SearchListTable> mList; |
||||
private Context mContext; |
||||
protected OnItemClickListener mClickListener; |
||||
|
||||
public HistoryAdapter(List<SearchListTable> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder{ |
||||
|
||||
TextView mTvLabel; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mTvLabel = itemView.findViewById(R.id.tv_label); |
||||
} |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_label, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) { |
||||
viewHolder.mTvLabel.setText(mList.get(i).getKey()); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
mClickListener.onItemClick(view,i); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
return mList.size(); |
||||
} |
||||
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener mListener) { |
||||
this.mClickListener = mListener; |
||||
} |
||||
|
||||
|
||||
public interface OnItemClickListener{ |
||||
void onItemClick(View view, int pos); |
||||
} |
||||
} |
@ -0,0 +1,54 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.model.db.SearchListTable |
||||
|
||||
/** |
||||
* create by zlj on 2019/6/17 |
||||
* describe: |
||||
*/ |
||||
class HistoryAdapter(private val mList: List<SearchListTable>) : |
||||
RecyclerView.Adapter<HistoryAdapter.ViewHolder>() { |
||||
private var mContext: Context? = null |
||||
|
||||
private lateinit var mClickListener: OnItemClickListener |
||||
|
||||
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mTvLabel: TextView = itemView.findViewById(R.id.tv_label) |
||||
} |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view = LayoutInflater.from(mContext).inflate(R.layout.item_label, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { |
||||
viewHolder.mTvLabel.text = mList[i].key |
||||
viewHolder.itemView.setOnClickListener { view -> mClickListener.onItemClick(view, i) } |
||||
} |
||||
|
||||
|
||||
override fun getItemCount(): Int { |
||||
return mList.size |
||||
} |
||||
|
||||
|
||||
fun setOnItemClickListener(mListener: OnItemClickListener) { |
||||
this.mClickListener = mListener |
||||
} |
||||
|
||||
|
||||
interface OnItemClickListener { |
||||
fun onItemClick(view: View, pos: Int) |
||||
} |
||||
} |
@ -1,73 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.constants.Constant; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* create by 赵利君 on 2019/6/17 |
||||
* describe: |
||||
*/ |
||||
public class HotAdapter extends RecyclerView.Adapter<HotAdapter.ViewHolder> { |
||||
|
||||
private List<String> mList; |
||||
private Context mContext; |
||||
protected OnItemClickListener mClickListener; |
||||
|
||||
public HotAdapter(List<String> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext==null){ |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_label, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) { |
||||
viewHolder.mTvLabel.setText(mList.get(i)); |
||||
viewHolder.mTvLabel.setBackgroundColor(Constant.tagColors[i]); |
||||
viewHolder.itemView.setOnClickListener(view -> mClickListener.onItemClick(view,i)); |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
if (mList.size()>8){ |
||||
return 8; |
||||
} |
||||
return mList.size(); |
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder{ |
||||
TextView mTvLabel; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mTvLabel = itemView.findViewById(R.id.tv_label); |
||||
} |
||||
} |
||||
|
||||
public void setOnItemClickListener(OnItemClickListener mListener) { |
||||
this.mClickListener = mListener; |
||||
} |
||||
|
||||
|
||||
public interface OnItemClickListener{ |
||||
void onItemClick(View view, int pos); |
||||
} |
||||
} |
@ -0,0 +1,54 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.constants.Constant |
||||
|
||||
/** |
||||
* create by 赵利君 on 2019/6/17 |
||||
* describe: |
||||
*/ |
||||
class HotAdapter(private val mList: List<String>) : RecyclerView.Adapter<HotAdapter.ViewHolder>() { |
||||
private var mContext: Context? = null |
||||
private lateinit var mClickListener: OnItemClickListener |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view = LayoutInflater.from(mContext).inflate(R.layout.item_label, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { |
||||
viewHolder.mTvLabel.text = mList[i] |
||||
viewHolder.mTvLabel.setBackgroundColor(Constant.tagColors[i]) |
||||
viewHolder.itemView.setOnClickListener { view -> mClickListener.onItemClick(view, i) } |
||||
|
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return if (mList.size > 8) { |
||||
8 |
||||
} else mList.size |
||||
} |
||||
|
||||
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mTvLabel: TextView = itemView.findViewById(R.id.tv_label) |
||||
} |
||||
|
||||
fun setOnItemClickListener(mListener: OnItemClickListener) { |
||||
this.mClickListener = mListener |
||||
} |
||||
|
||||
|
||||
interface OnItemClickListener { |
||||
fun onItemClick(view: View, pos: Int) |
||||
} |
||||
} |
@ -1,73 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
|
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ImageView; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.activity.NovelBookDetailActivity; |
||||
import com.novel.read.constants.Constant; |
||||
import com.novel.read.model.protocol.RecommendListResp; |
||||
import com.novel.read.utlis.GlideImageLoader; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* create by zlj on 2019/6/19 |
||||
* describe: |
||||
*/ |
||||
public class HumanAdapter extends RecyclerView.Adapter<HumanAdapter.ViewHolder> { |
||||
|
||||
private List<RecommendListResp.ListBean> mList; |
||||
private Context mContext; |
||||
public HumanAdapter(List<RecommendListResp.ListBean> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext==null){ |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.rlv_human_item, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) { |
||||
viewHolder.mTvBookName.setText(mList.get(i).getBook_title()); |
||||
viewHolder.mTvAuthor.setText(mList.get(i).getAuthor()); |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext,mList.get(i).getBook_cover(),viewHolder.mIvBook); |
||||
viewHolder.itemView.setOnClickListener(view -> { |
||||
Intent intent=new Intent(mContext, NovelBookDetailActivity.class); |
||||
intent.putExtra(Constant.Bundle.BookId, mList.get(i).getBook_id()); |
||||
mContext.startActivity(intent); |
||||
}); |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
return mList.size(); |
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder{ |
||||
ImageView mIvBook; |
||||
TextView mTvBookName; |
||||
TextView mTvAuthor; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mIvBook = itemView.findViewById(R.id.iv_book); |
||||
mTvBookName = itemView.findViewById(R.id.tv_book_name); |
||||
mTvAuthor = itemView.findViewById(R.id.tv_book_author); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,55 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
|
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.ImageView |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.activity.NovelBookDetailActivity |
||||
import com.novel.read.constants.Constant |
||||
import com.novel.read.model.protocol.RecommendListResp |
||||
import com.novel.read.utlis.GlideImageLoader |
||||
|
||||
/** |
||||
* create by zlj on 2019/6/19 |
||||
* describe: |
||||
*/ |
||||
class HumanAdapter(private val mList: List<RecommendListResp.ListBean>) : RecyclerView.Adapter<HumanAdapter.ViewHolder>() { |
||||
private var mContext: Context? = null |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view = LayoutInflater.from(mContext).inflate(R.layout.rlv_human_item, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { |
||||
viewHolder.mTvBookName.text = mList[i].book_title |
||||
viewHolder.mTvAuthor.text = mList[i].author |
||||
GlideImageLoader.displayCornerImage(mContext!!, mList[i].book_cover!!, viewHolder.mIvBook) |
||||
viewHolder.itemView.setOnClickListener { view -> |
||||
val intent = Intent(mContext, NovelBookDetailActivity::class.java) |
||||
intent.putExtra(Constant.Bundle.BookId, mList[i].book_id) |
||||
mContext!!.startActivity(intent) |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return mList.size |
||||
} |
||||
|
||||
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book) |
||||
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name) |
||||
var mTvAuthor: TextView = itemView.findViewById(R.id.tv_book_author) |
||||
|
||||
} |
||||
} |
@ -1,81 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ImageView; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.activity.NovelBookDetailActivity; |
||||
import com.novel.read.constants.Constant; |
||||
import com.novel.read.model.protocol.RecommendBookResp; |
||||
import com.novel.read.utlis.GlideImageLoader; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 猜你喜欢adapter |
||||
*/ |
||||
public class LoveLyAdapter extends RecyclerView.Adapter { |
||||
|
||||
private List<RecommendBookResp.BookBean> mList; |
||||
private Context mContext; |
||||
|
||||
public LoveLyAdapter(List<RecommendBookResp.BookBean> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext==null){ |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view; |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_lovely, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { |
||||
if (viewHolder instanceof ViewHolder) { |
||||
RecommendBookResp.BookBean bookBean = mList.get(i); |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext, bookBean.getCover(), ((ViewHolder) viewHolder).mIvBook); |
||||
((ViewHolder) viewHolder).mTvBookName.setText(bookBean.getTitle()); |
||||
((ViewHolder) viewHolder).mTvBookAuthor.setText(mContext.getString(R.string.author_zhu,bookBean.getAuthor())); |
||||
((ViewHolder) viewHolder).mTvDescription.setText(bookBean.getDescription()); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
Intent intent=new Intent(mContext, NovelBookDetailActivity.class); |
||||
intent.putExtra(Constant.Bundle.BookId, bookBean.getId()); |
||||
mContext.startActivity(intent); |
||||
} |
||||
}); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
return mList.size(); |
||||
} |
||||
static class ViewHolder extends RecyclerView.ViewHolder{ |
||||
ImageView mIvBook; |
||||
TextView mTvBookName; |
||||
TextView mTvBookAuthor; |
||||
TextView mTvDescription; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mIvBook = itemView.findViewById(R.id.iv_book); |
||||
mTvBookName = itemView.findViewById(R.id.tv_book_name); |
||||
mTvBookAuthor = itemView.findViewById(R.id.tv_book_author); |
||||
mTvDescription = itemView.findViewById(R.id.tv_book_description); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,59 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.ImageView |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.activity.NovelBookDetailActivity |
||||
import com.novel.read.constants.Constant |
||||
import com.novel.read.model.protocol.RecommendBookResp |
||||
import com.novel.read.utlis.GlideImageLoader |
||||
|
||||
/** |
||||
* 猜你喜欢adapter |
||||
*/ |
||||
class LoveLyAdapter(private val mList: List<RecommendBookResp.BookBean>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { |
||||
|
||||
private var mContext: Context? = null |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerView.ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view: View = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_lovely, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) { |
||||
if (viewHolder is ViewHolder) { |
||||
val bookBean = mList[i] |
||||
GlideImageLoader.displayCornerImage(mContext!!, bookBean.cover!!, viewHolder.mIvBook) |
||||
viewHolder.mTvBookName.text = bookBean.title |
||||
viewHolder.mTvBookAuthor.text = |
||||
mContext!!.getString(R.string.author_zhu, bookBean.author) |
||||
viewHolder.mTvDescription.text = bookBean.description |
||||
viewHolder.itemView.setOnClickListener { |
||||
val intent = Intent(mContext, NovelBookDetailActivity::class.java) |
||||
intent.putExtra(Constant.Bundle.BookId, bookBean.id) |
||||
mContext!!.startActivity(intent) |
||||
} |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return mList.size |
||||
} |
||||
|
||||
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book) |
||||
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name) |
||||
var mTvBookAuthor: TextView = itemView.findViewById(R.id.tv_book_author) |
||||
var mTvDescription: TextView = itemView.findViewById(R.id.tv_book_description) |
||||
} |
||||
} |
@ -1,98 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.CheckBox; |
||||
import android.widget.CompoundButton; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.model.db.BookSignTable; |
||||
import com.novel.read.model.protocol.MarkResp; |
||||
|
||||
import java.util.List; |
||||
|
||||
public class MarkAdapter extends RecyclerView.Adapter{ |
||||
|
||||
private Context mContext; |
||||
private List<BookSignTable> mList; |
||||
private boolean edit; |
||||
|
||||
public MarkAdapter(List<BookSignTable> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext==null){ |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view; |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_mark, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { |
||||
if (viewHolder instanceof ViewHolder){ |
||||
if (edit){ |
||||
((ViewHolder) viewHolder).mCheck.setVisibility(View.VISIBLE); |
||||
((ViewHolder) viewHolder).mCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { |
||||
@Override |
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean b) { |
||||
mList.get(i).setEdit(b); |
||||
} |
||||
}); |
||||
}else { |
||||
((ViewHolder) viewHolder).mCheck.setVisibility(View.GONE); |
||||
} |
||||
((ViewHolder) viewHolder).mTvMark.setText(mList.get(i).getContent()); |
||||
((ViewHolder) viewHolder).mCheck.setChecked(mList.get(i).getEdit()); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
return mList.size(); |
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder{ |
||||
TextView mTvMark; |
||||
CheckBox mCheck; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mTvMark = itemView.findViewById(R.id.tvMarkItem); |
||||
mCheck = itemView.findViewById(R.id.checkbox); |
||||
} |
||||
} |
||||
|
||||
public void setEdit(boolean edit){ |
||||
this.edit = edit; |
||||
notifyDataSetChanged(); |
||||
} |
||||
|
||||
public boolean getEdit(){ |
||||
return edit; |
||||
} |
||||
|
||||
|
||||
public String getSelectList() { |
||||
StringBuilder signs = new StringBuilder(); |
||||
for (int i = 0; i < mList.size(); i++) { |
||||
if (mList.get(i).getEdit()) { |
||||
if (signs.toString().equals("")){ |
||||
signs.append(mList.get(i).getArticleId()); |
||||
}else { |
||||
signs.append(",").append(mList.get(i).getArticleId()); |
||||
} |
||||
} |
||||
} |
||||
return String.valueOf(signs); |
||||
} |
||||
} |
@ -0,0 +1,71 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.CheckBox |
||||
import android.widget.CompoundButton |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.model.db.BookSignTable |
||||
import com.novel.read.model.protocol.MarkResp |
||||
|
||||
class MarkAdapter(private val mList: List<BookSignTable>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { |
||||
|
||||
private var mContext: Context? = null |
||||
var edit: Boolean = false |
||||
set(edit) { |
||||
field = edit |
||||
notifyDataSetChanged() |
||||
} |
||||
|
||||
val selectList: String |
||||
get() { |
||||
val signs = StringBuilder() |
||||
for (i in mList.indices) { |
||||
if (mList[i].edit) { |
||||
if (signs.toString() == "") { |
||||
signs.append(mList[i].articleId) |
||||
} else { |
||||
signs.append(",").append(mList[i].articleId) |
||||
} |
||||
} |
||||
} |
||||
return signs.toString() |
||||
} |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerView.ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view: View = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_mark, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) { |
||||
if (viewHolder is ViewHolder) { |
||||
if (this.edit) { |
||||
viewHolder.mCheck.visibility = View.VISIBLE |
||||
viewHolder.mCheck.setOnCheckedChangeListener { compoundButton, b -> |
||||
mList[i].edit = b |
||||
} |
||||
} else { |
||||
viewHolder.mCheck.visibility = View.GONE |
||||
} |
||||
viewHolder.mTvMark.text = mList[i].content |
||||
viewHolder.mCheck.isChecked = mList[i].edit |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return mList.size |
||||
} |
||||
|
||||
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mTvMark: TextView = itemView.findViewById(R.id.tvMarkItem) |
||||
var mCheck: CheckBox = itemView.findViewById(R.id.checkbox) |
||||
} |
||||
} |
@ -1,72 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.graphics.drawable.Drawable; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ImageView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
import com.mango.mangolib.event.EventManager; |
||||
import com.novel.read.R; |
||||
import com.novel.read.widget.page.PageLoader; |
||||
import com.novel.read.widget.page.PageStyle; |
||||
|
||||
import java.util.List; |
||||
|
||||
public class PageStyleAdapter extends RecyclerView.Adapter<PageStyleAdapter.PageHolder> { |
||||
|
||||
private List<Drawable> mList; |
||||
private Context mContext; |
||||
private int currentChecked; |
||||
private PageLoader mPageLoader; |
||||
public PageStyleAdapter(List<Drawable> mList, PageLoader mPageLoader) { |
||||
this.mList = mList; |
||||
this.mPageLoader = mPageLoader; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public PageHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext==null){ |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_read_bg, viewGroup, false); |
||||
return new PageHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull PageHolder pageHolder, int i) { |
||||
pageHolder.mReadBg.setBackground(mList.get(i)); |
||||
pageHolder.mIvChecked.setVisibility(View.GONE); |
||||
if (currentChecked == i){ |
||||
pageHolder.mIvChecked.setVisibility(View.VISIBLE); |
||||
} |
||||
pageHolder.itemView.setOnClickListener(view -> { |
||||
currentChecked = i; |
||||
notifyDataSetChanged(); |
||||
mPageLoader.setPageStyle(PageStyle.values()[i]); |
||||
}); |
||||
} |
||||
|
||||
public void setPageStyleChecked(PageStyle pageStyle){ |
||||
currentChecked = pageStyle.ordinal(); |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
return mList.size(); |
||||
} |
||||
|
||||
static class PageHolder extends RecyclerView.ViewHolder{ |
||||
private View mReadBg; |
||||
private ImageView mIvChecked; |
||||
public PageHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mReadBg = itemView.findViewById(R.id.read_bg_view); |
||||
mIvChecked = itemView.findViewById(R.id.read_bg_iv_checked); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,54 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.graphics.drawable.Drawable |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.ImageView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
import com.mango.mangolib.event.EventManager |
||||
import com.novel.read.R |
||||
import com.novel.read.widget.page.PageLoader |
||||
import com.novel.read.widget.page.PageStyle |
||||
|
||||
class PageStyleAdapter(val mList: List<Drawable>, private val mPageLoader: PageLoader) : |
||||
RecyclerView.Adapter<PageStyleAdapter.PageHolder>() { |
||||
private var mContext: Context? = null |
||||
private var currentChecked: Int = 0 |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): PageHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view = LayoutInflater.from(mContext).inflate(R.layout.item_read_bg, viewGroup, false) |
||||
return PageHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(pageHolder: PageHolder, i: Int) { |
||||
pageHolder.mReadBg.background = mList[i] |
||||
pageHolder.mIvChecked.visibility = View.GONE |
||||
if (currentChecked == i) { |
||||
pageHolder.mIvChecked.visibility = View.VISIBLE |
||||
} |
||||
pageHolder.itemView.setOnClickListener { |
||||
currentChecked = i |
||||
notifyDataSetChanged() |
||||
mPageLoader.setPageStyle(PageStyle.values()[i]) |
||||
} |
||||
} |
||||
|
||||
fun setPageStyleChecked(pageStyle: PageStyle) { |
||||
currentChecked = pageStyle.ordinal |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return mList.size |
||||
} |
||||
|
||||
class PageHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
val mReadBg: View = itemView.findViewById(R.id.read_bg_view) |
||||
val mIvChecked: ImageView = itemView.findViewById(R.id.read_bg_iv_checked) |
||||
|
||||
} |
||||
} |
@ -1,77 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
|
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ImageView; |
||||
import android.widget.TextView; |
||||
|
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.activity.NovelBookDetailActivity; |
||||
import com.novel.read.constants.Constant; |
||||
import com.novel.read.model.protocol.RecommendListResp; |
||||
import com.novel.read.utlis.GlideImageLoader; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* create by 赵利君 on 2019/6/20 |
||||
* describe: |
||||
*/ |
||||
public class RankAdapter extends RecyclerView.Adapter<RankAdapter.ViewHolder>{ |
||||
|
||||
private List<RecommendListResp.ListBean> mList; |
||||
private Context mContext; |
||||
public RankAdapter(List<RecommendListResp.ListBean> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext==null){ |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.rlv_human_item, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) { |
||||
viewHolder.mTvBookName.setText(mList.get(i).getBook_title()); |
||||
viewHolder.mTvAuthor.setText(mList.get(i).getAuthor()); |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext,mList.get(i).getBook_cover(),viewHolder.mIvBook); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
Intent intent=new Intent(mContext, NovelBookDetailActivity.class); |
||||
intent.putExtra(Constant.Bundle.BookId, mList.get(i).getBook_id()); |
||||
mContext.startActivity(intent); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
return mList.size(); |
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder{ |
||||
ImageView mIvBook; |
||||
TextView mTvBookName; |
||||
TextView mTvAuthor; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mIvBook = itemView.findViewById(R.id.iv_book); |
||||
mTvBookName = itemView.findViewById(R.id.tv_book_name); |
||||
mTvAuthor = itemView.findViewById(R.id.tv_book_author); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,55 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
|
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.ImageView |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.activity.NovelBookDetailActivity |
||||
import com.novel.read.constants.Constant |
||||
import com.novel.read.model.protocol.RecommendListResp |
||||
import com.novel.read.utlis.GlideImageLoader |
||||
|
||||
/** |
||||
* create by zlj on 2019/6/20 |
||||
* describe: |
||||
*/ |
||||
class RankAdapter(private val mList: List<RecommendListResp.ListBean>) : RecyclerView.Adapter<RankAdapter.ViewHolder>() { |
||||
private var mContext: Context? = null |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view = LayoutInflater.from(mContext).inflate(R.layout.rlv_human_item, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { |
||||
viewHolder.mTvBookName.text = mList[i].book_title |
||||
viewHolder.mTvAuthor.text = mList[i].author |
||||
GlideImageLoader.displayCornerImage(mContext!!, mList[i].book_cover!!, viewHolder.mIvBook) |
||||
viewHolder.itemView.setOnClickListener { |
||||
val intent = Intent(mContext, NovelBookDetailActivity::class.java) |
||||
intent.putExtra(Constant.Bundle.BookId, mList[i].book_id) |
||||
mContext!!.startActivity(intent) |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return mList.size |
||||
} |
||||
|
||||
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mIvBook: ImageView = itemView.findViewById(R.id.iv_book) |
||||
var mTvBookName: TextView = itemView.findViewById(R.id.tv_book_name) |
||||
var mTvAuthor: TextView = itemView.findViewById(R.id.tv_book_author) |
||||
|
||||
} |
||||
} |
@ -1,146 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ImageView; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.LinearLayoutManager; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.activity.NovelBookDetailActivity; |
||||
import com.novel.read.adapter.holder.EmptyHolder; |
||||
import com.novel.read.adapter.holder.MoreHolder; |
||||
import com.novel.read.constants.Constant; |
||||
import com.novel.read.inter.OnLoadMoreListener; |
||||
import com.novel.read.model.protocol.RankByUpdateResp; |
||||
import com.novel.read.utlis.GlideImageLoader; |
||||
|
||||
import java.util.List; |
||||
import static com.novel.read.constants.Constant.COMMENT_SIZE; |
||||
|
||||
public class RankListAdapter extends RecyclerView.Adapter { |
||||
|
||||
|
||||
private List<RankByUpdateResp.BookBean> mList; |
||||
private Context mContext; |
||||
private final int VALUE_ITEM = 100; //正常item
|
||||
private final int EMPTY_ITEM = 101; //空白item
|
||||
|
||||
private final int PROCESS_ITEM = 102; |
||||
private boolean loadingMore; |
||||
private int lastVisibleItem, totalItemCount; |
||||
private int visibleThreshold = 1; |
||||
private OnLoadMoreListener mOnLoadMoreListener; |
||||
|
||||
public RankListAdapter(List<RankByUpdateResp.BookBean> mList, RecyclerView recyclerView) { |
||||
this.mList = mList; |
||||
if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) { |
||||
final LinearLayoutManager llMangager = (LinearLayoutManager) recyclerView.getLayoutManager(); |
||||
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { |
||||
@Override |
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { |
||||
super.onScrolled(recyclerView, dx, dy); |
||||
totalItemCount = llMangager.getItemCount(); |
||||
lastVisibleItem = llMangager.findLastVisibleItemPosition(); |
||||
if (!loadingMore && totalItemCount == (lastVisibleItem + visibleThreshold) && totalItemCount >= (COMMENT_SIZE)) { |
||||
if (mOnLoadMoreListener != null) { |
||||
mOnLoadMoreListener.onLoadMore(); |
||||
} |
||||
} |
||||
} |
||||
}); |
||||
|
||||
} |
||||
} |
||||
|
||||
public void setLoadingMore(boolean loadingMore) { |
||||
this.loadingMore = loadingMore; |
||||
} |
||||
|
||||
public boolean isLoadingMore() { |
||||
return loadingMore; |
||||
} |
||||
|
||||
public void setOnLoadMoreListener(OnLoadMoreListener listener) { |
||||
this.mOnLoadMoreListener = listener; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view; |
||||
if (viewType == VALUE_ITEM) { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_list, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} else if (viewType == EMPTY_ITEM) { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_view, viewGroup, false); |
||||
return new EmptyHolder(view); |
||||
}else if (viewType==PROCESS_ITEM){ |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.load_more_layout, viewGroup, false); |
||||
return new MoreHolder(view); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) { |
||||
if (viewHolder instanceof ViewHolder){ |
||||
RankByUpdateResp.BookBean bookBean = mList.get(i); |
||||
((ViewHolder) viewHolder).tvBookName.setText(bookBean.getTitle()); |
||||
((ViewHolder) viewHolder).tvBookAuthor.setText(bookBean.getAuthor()); |
||||
((ViewHolder) viewHolder).tvBookDescription.setText(bookBean.getDescription()); |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext,bookBean.getCover(),((ViewHolder) viewHolder).ivBook); |
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() { |
||||
@Override |
||||
public void onClick(View view) { |
||||
Intent intent=new Intent(mContext, NovelBookDetailActivity.class); |
||||
intent.putExtra(Constant.Bundle.BookId, bookBean.getId()); |
||||
mContext.startActivity(intent); |
||||
} |
||||
}); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
if (mList.size() == 0) { |
||||
return 1; |
||||
} |
||||
return mList.size(); |
||||
} |
||||
|
||||
@Override |
||||
public int getItemViewType(int position) { |
||||
if (mList == null || mList.size() == 0) { |
||||
return EMPTY_ITEM; |
||||
} else if (mList.get(position).getId() == 0) { |
||||
return PROCESS_ITEM; |
||||
} else { |
||||
return VALUE_ITEM; |
||||
} |
||||
|
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder { |
||||
ImageView ivBook; |
||||
TextView tvBookName; |
||||
TextView tvBookAuthor; |
||||
TextView tvBookDescription; |
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
ivBook = itemView.findViewById(R.id.iv_book); |
||||
tvBookName = itemView.findViewById(R.id.tv_book_name); |
||||
tvBookAuthor = itemView.findViewById(R.id.tv_book_author); |
||||
tvBookDescription = itemView.findViewById(R.id.tv_book_description); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,126 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.ImageView |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.LinearLayoutManager |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.activity.NovelBookDetailActivity |
||||
import com.novel.read.adapter.holder.EmptyHolder |
||||
import com.novel.read.adapter.holder.MoreHolder |
||||
import com.novel.read.constants.Constant |
||||
import com.novel.read.inter.OnLoadMoreListener |
||||
import com.novel.read.model.protocol.RankByUpdateResp |
||||
import com.novel.read.utlis.GlideImageLoader |
||||
import com.novel.read.constants.Constant.COMMENT_SIZE |
||||
|
||||
class RankListAdapter( val mList: List<RankByUpdateResp.BookBean>, recyclerView: RecyclerView) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { |
||||
|
||||
private lateinit var mContext: Context |
||||
var isLoadingMore: Boolean = false |
||||
private var lastVisibleItem: Int = 0 |
||||
private var totalItemCount: Int = 0 |
||||
private val visibleThreshold = 1 |
||||
private var mOnLoadMoreListener: OnLoadMoreListener? = null |
||||
|
||||
init { |
||||
if (recyclerView.layoutManager is LinearLayoutManager) { |
||||
val llMangager = recyclerView.layoutManager as LinearLayoutManager? |
||||
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { |
||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { |
||||
super.onScrolled(recyclerView, dx, dy) |
||||
totalItemCount = llMangager!!.itemCount |
||||
lastVisibleItem = llMangager.findLastVisibleItemPosition() |
||||
if (!isLoadingMore && totalItemCount == lastVisibleItem + visibleThreshold && totalItemCount >= COMMENT_SIZE) { |
||||
if (mOnLoadMoreListener != null) { |
||||
mOnLoadMoreListener!!.onLoadMore() |
||||
} |
||||
} |
||||
} |
||||
}) |
||||
|
||||
} |
||||
} |
||||
|
||||
fun setOnLoadMoreListener(listener: OnLoadMoreListener) { |
||||
this.mOnLoadMoreListener = listener |
||||
} |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): RecyclerView.ViewHolder { |
||||
mContext = viewGroup.context |
||||
|
||||
val view: View |
||||
when (viewType) { |
||||
VALUE_ITEM -> { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_list, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
EMPTY_ITEM -> { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_empty_view, viewGroup, false) |
||||
return EmptyHolder(view) |
||||
} |
||||
PROCESS_ITEM -> { |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.load_more_layout, viewGroup, false) |
||||
return MoreHolder(view) |
||||
} |
||||
} |
||||
throw IllegalArgumentException() |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) { |
||||
if (viewHolder is ViewHolder) { |
||||
val bookBean = mList[i] |
||||
viewHolder.tvBookName.text = bookBean.title |
||||
viewHolder.tvBookAuthor.text = bookBean.author |
||||
viewHolder.tvBookDescription.text = bookBean.description |
||||
GlideImageLoader.displayCornerImage(mContext, bookBean.cover, viewHolder.ivBook) |
||||
viewHolder.itemView.setOnClickListener { |
||||
val intent = Intent(mContext, NovelBookDetailActivity::class.java) |
||||
intent.putExtra(Constant.Bundle.BookId, bookBean.id) |
||||
mContext.startActivity(intent) |
||||
} |
||||
}else if (viewHolder is MoreHolder){ |
||||
viewHolder.bindModule(isLoadingMore) |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return if (mList.isEmpty()) { |
||||
1 |
||||
} else mList.size + 1 |
||||
} |
||||
|
||||
override fun getItemViewType(position: Int): Int { |
||||
if (position == itemCount - 1) { |
||||
return PROCESS_ITEM |
||||
} |
||||
return when { |
||||
mList.isEmpty() -> EMPTY_ITEM |
||||
else -> VALUE_ITEM |
||||
} |
||||
} |
||||
|
||||
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var ivBook: ImageView = itemView.findViewById(R.id.iv_book) |
||||
var tvBookName: TextView = itemView.findViewById(R.id.tv_book_name) |
||||
var tvBookAuthor: TextView = itemView.findViewById(R.id.tv_book_author) |
||||
var tvBookDescription: TextView = itemView.findViewById(R.id.tv_book_description) |
||||
|
||||
} |
||||
|
||||
companion object { |
||||
|
||||
private const val VALUE_ITEM = 100 //正常item |
||||
|
||||
private const val EMPTY_ITEM = 101 //空白item |
||||
|
||||
private const val PROCESS_ITEM = 102 |
||||
} |
||||
|
||||
} |
@ -1,76 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ImageView; |
||||
import android.widget.TextView; |
||||
|
||||
import androidx.annotation.NonNull; |
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
import com.novel.read.R; |
||||
import com.novel.read.activity.NovelBookTypeListActivity; |
||||
import com.novel.read.constants.Constant; |
||||
import com.novel.read.model.protocol.CategoryTypeResp; |
||||
import com.novel.read.utlis.GlideImageLoader; |
||||
|
||||
import java.util.List; |
||||
|
||||
public class StackAdapter extends RecyclerView.Adapter { |
||||
|
||||
private List<CategoryTypeResp.CategoryBean> mList; |
||||
private Context mContext; |
||||
|
||||
public StackAdapter(List<CategoryTypeResp.CategoryBean> mList) { |
||||
this.mList = mList; |
||||
} |
||||
|
||||
@NonNull |
||||
@Override |
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.getContext(); |
||||
} |
||||
View view; |
||||
view = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_type, viewGroup, false); |
||||
return new ViewHolder(view); |
||||
} |
||||
|
||||
@Override |
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) { |
||||
if (viewHolder instanceof ViewHolder) { |
||||
|
||||
String input = mList.get(i).getTitle(); |
||||
String regex = "(.{2})"; |
||||
input = input.replaceAll(regex, "$1\n"); |
||||
((ViewHolder) viewHolder).mTvType.setText(input); |
||||
viewHolder.itemView.setOnClickListener(view -> { |
||||
Intent intent = new Intent(mContext, NovelBookTypeListActivity.class); |
||||
intent.putExtra(Constant.Bundle.CategoryId, String.valueOf(mList.get(i).getId())); |
||||
intent.putExtra(Constant.Bundle.mTitle, mList.get(i).getTitle()); |
||||
mContext.startActivity(intent); |
||||
}); |
||||
GlideImageLoader.INSTANCE.displayCornerImage(mContext, mList.get(i).getCover(), ((ViewHolder) viewHolder).mIvType, R.drawable.ic_type_default); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int getItemCount() { |
||||
return mList.size(); |
||||
} |
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder { |
||||
ImageView mIvType; |
||||
TextView mTvType; |
||||
|
||||
public ViewHolder(@NonNull View itemView) { |
||||
super(itemView); |
||||
mIvType = itemView.findViewById(R.id.iv_book); |
||||
mTvType = itemView.findViewById(R.id.tv_book_name); |
||||
|
||||
} |
||||
} |
||||
} |
@ -0,0 +1,61 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import android.content.Context |
||||
import android.content.Intent |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import android.widget.ImageView |
||||
import android.widget.TextView |
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
import com.novel.read.activity.NovelBookTypeListActivity |
||||
import com.novel.read.constants.Constant |
||||
import com.novel.read.model.protocol.CategoryTypeResp |
||||
import com.novel.read.utlis.GlideImageLoader |
||||
|
||||
class StackAdapter(private val mList: List<CategoryTypeResp.CategoryBean>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { |
||||
|
||||
private var mContext: Context? = null |
||||
|
||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): RecyclerView.ViewHolder { |
||||
if (mContext == null) { |
||||
mContext = viewGroup.context |
||||
} |
||||
val view: View = LayoutInflater.from(mContext).inflate(R.layout.rlv_item_book_type, viewGroup, false) |
||||
return ViewHolder(view) |
||||
} |
||||
|
||||
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, i: Int) { |
||||
if (viewHolder is ViewHolder) { |
||||
|
||||
var input = mList[i].title |
||||
val regex = "(.{2})" |
||||
input = input.replace(regex.toRegex(), "$1\n") |
||||
viewHolder.mTvType.text = input |
||||
viewHolder.itemView.setOnClickListener { view -> |
||||
val intent = Intent(mContext, NovelBookTypeListActivity::class.java) |
||||
intent.putExtra(Constant.Bundle.CategoryId, mList[i].id.toString()) |
||||
intent.putExtra(Constant.Bundle.mTitle, mList[i].title) |
||||
mContext!!.startActivity(intent) |
||||
} |
||||
GlideImageLoader.displayCornerImage( |
||||
mContext!!, |
||||
mList[i].cover!!, |
||||
viewHolder.mIvType, |
||||
R.drawable.ic_type_default |
||||
) |
||||
} |
||||
} |
||||
|
||||
override fun getItemCount(): Int { |
||||
return mList.size |
||||
} |
||||
|
||||
internal class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
var mIvType: ImageView = itemView.findViewById(R.id.iv_book) |
||||
var mTvType: TextView = itemView.findViewById(R.id.tv_book_name) |
||||
|
||||
} |
||||
} |
@ -1,31 +0,0 @@ |
||||
package com.novel.read.adapter; |
||||
|
||||
import androidx.fragment.app.Fragment; |
||||
import androidx.fragment.app.FragmentManager; |
||||
import androidx.fragment.app.FragmentPagerAdapter; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* Created by Administrator on 2017/2/24. |
||||
*/ |
||||
|
||||
public class ViewPageAdapter extends FragmentPagerAdapter { |
||||
private List<Fragment> fragmentList; |
||||
|
||||
public ViewPageAdapter(FragmentManager fm, List<Fragment> fragmentList) { |
||||
super(fm); |
||||
this.fragmentList = fragmentList; |
||||
} |
||||
|
||||
@Override |
||||
public Fragment getItem(int position) { |
||||
return fragmentList.get(position); |
||||
} |
||||
|
||||
@Override |
||||
public int getCount() { |
||||
return fragmentList.size(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,22 @@ |
||||
package com.novel.read.adapter |
||||
|
||||
import androidx.fragment.app.Fragment |
||||
import androidx.fragment.app.FragmentManager |
||||
import androidx.fragment.app.FragmentPagerAdapter |
||||
|
||||
/** |
||||
* Created by Administrator on 2017/2/24. |
||||
*/ |
||||
|
||||
class ViewPageAdapter(fm: FragmentManager, private val fragmentList: List<Fragment>) : |
||||
FragmentPagerAdapter(fm) { |
||||
|
||||
override fun getItem(position: Int): Fragment { |
||||
return fragmentList[position] |
||||
} |
||||
|
||||
override fun getCount(): Int { |
||||
return fragmentList.size |
||||
} |
||||
|
||||
} |
@ -1,23 +0,0 @@ |
||||
package com.novel.read.adapter.holder; |
||||
|
||||
import android.view.View; |
||||
|
||||
import androidx.recyclerview.widget.RecyclerView; |
||||
|
||||
/** |
||||
* @author: LiJun 390057892@qq.com |
||||
* @date: 2018/4/4 9:28 |
||||
*/ |
||||
|
||||
public class MoreHolder extends RecyclerView.ViewHolder{ |
||||
|
||||
public MoreHolder(View itemView) { |
||||
super(itemView); |
||||
} |
||||
|
||||
public void bindModule(){ |
||||
|
||||
|
||||
} |
||||
|
||||
} |
@ -0,0 +1,34 @@ |
||||
package com.novel.read.adapter.holder |
||||
|
||||
import android.view.View |
||||
import android.widget.ProgressBar |
||||
import android.widget.TextView |
||||
|
||||
import androidx.recyclerview.widget.RecyclerView |
||||
|
||||
import com.novel.read.R |
||||
|
||||
/** |
||||
* @author: LiJun 390057892@qq.com |
||||
* @date: 2018/4/4 9:28 |
||||
*/ |
||||
|
||||
class MoreHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { |
||||
|
||||
private val mProgressBar: ProgressBar = itemView.findViewById(R.id.progressBar) |
||||
private val mTvName: TextView = itemView.findViewById(R.id.tv_name) |
||||
private val mTvEnd: TextView = itemView.findViewById(R.id.tv_end) |
||||
|
||||
fun bindModule(loadMore: Boolean) { |
||||
if (loadMore) { |
||||
mTvName.visibility = View.VISIBLE |
||||
mProgressBar.visibility = View.VISIBLE |
||||
mTvEnd.visibility = View.GONE |
||||
} else { |
||||
mTvName.visibility = View.GONE |
||||
mProgressBar.visibility = View.GONE |
||||
mTvEnd.visibility = View.VISIBLE |
||||
} |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue