package moe.feng.nhentai.ui.adapter; import android.support.v7.widget.AppCompatTextView; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; import moe.feng.nhentai.R; import moe.feng.nhentai.dao.SearchHistoryManager; import moe.feng.nhentai.ui.common.AbsRecyclerViewAdapter; public class HistoryRecyclerAdapter extends AbsRecyclerViewAdapter { private SearchHistoryManager mHM; private AddTextListener mAddTextListener; public HistoryRecyclerAdapter(RecyclerView recyclerView, SearchHistoryManager hm) { super(recyclerView); this.mHM = hm; } @SuppressWarnings("unused") public AddTextListener getAddTextListener() { return this.mAddTextListener; } public void setAddTextListener(AddTextListener listener) { this.mAddTextListener = listener; } @Override public ClickableViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { bindContext(viewGroup.getContext()); View view = LayoutInflater.from(getContext()).inflate(R.layout.list_item_history, viewGroup, false); return new ViewHolder(view); } @Override public void onBindViewHolder(ClickableViewHolder holder, int position) { super.onBindViewHolder(holder, position); if (holder instanceof ViewHolder) { ViewHolder mHolder = (ViewHolder) holder; mHolder.mTextView.setText(mHM.get(position)); } } @Override public int getItemCount() { return mHM.getAll().size(); } public class ViewHolder extends ClickableViewHolder { AppCompatTextView mTextView; ImageButton mBtnAdd; public ViewHolder(View itemView) { super(itemView); this.mTextView = (AppCompatTextView) itemView.findViewById(R.id.history_title); this.mBtnAdd = (ImageButton) itemView.findViewById(R.id.btn_add); this.mBtnAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (mAddTextListener != null && mTextView.getText() != null) { mAddTextListener.onTextAdd(mTextView.getText().toString()); } } }); } } public interface AddTextListener { void onTextAdd(String string); } }