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