1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
private final List<Score> mValues;
public RecyclerViewAdapter(List<Score> items) { mValues = items; } private ScoreItemBinding itemBinding; private OnItemClickListener mOnItemClickListener; private Context context;
@Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
itemBinding=ContentListItemBinding.inflate(LayoutInflater.from(parent.getContext()),parent,false); context=parent.getContext(); return new ViewHolder(itemBinding); }
@Override public void onBindViewHolder(final ViewHolder holder, int position) { holder.mItem = mValues.get(position); holder.gourd.setImageResource(holder.mItem.getGourd); holder.mTitleView.setText(holder.mItem.getName()); holder.mScoreView.setText(holder.mItem.getScore()); RequestOptions options = RequestOptions .bitmapTransform(new RoundedCorners(20)); Glide.with(context) .load(holder.mItem.getCover()) .apply(options) .into(holder.mCoverView); holder.mView.setOnClickListener(v -> { if (null != mOnItemClickListener) { mOnItemClickListener.onItemClick(position); } });
holder.mView.setOnLongClickListener(v -> { if (null != mOnItemClickListener) { mOnItemClickListener.onItemLongClick(position); return true; } return false; }); }
@Override public int getItemCount() { return mValues!=null ? mValues.size() : 0; }
public static class ViewHolder extends RecyclerView.ViewHolder { public final View mView; public final ImageView gourd; public final TextView mTitleView; public final TextView mScoreView; public Coconut mItem;
public ViewHolder(ContentListItemBinding binding) { super(binding.getRoot()); mView = binding.getRoot(); gourd = binding.gourd; mTitleView = binding.title; mScoreView = binding.score;
} }
public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.mOnItemClickListener = onItemClickListener; } public interface OnItemClickListener { public void onItemClick(int position); public void onItemLongClick(int position); }
} ``` java
### 在Activity中使用 ``` java public class SorghumActivity extends BaseActivity {
private ActivitySorghumBinding sorghumBinding; private int selectItem=-1; private RecyclerViewAdapter recyclerViewAdapter; public List<Score> scoreList;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sorghumBinding=ActivityMainBinding.inflate(getLayoutInflater()); setContentView(sorghumBinding.getRoot()); scoreList= GreenDaoUtil.getAllScore(); initScoreAdapter();
}
private void initScoreAdapter(){ sorghumBinding.cactus.setLayoutManager(new LinearLayoutManager(this)); recyclerViewAdapter=new RecyclerViewAdapter(scoreList);
recyclerViewAdapter.setOnItemClickListener(new RecyclerViewAdapter.OnItemClickListener() { @Override public void onItemClick(int position) { Intent intent=new Intent(this, ScoreActivity.class); startActivity(intent); }
@Override public void onItemLongClick(int position) {
} }); sorghumBinding.cactus.setAdapter(recyclerViewAdapter);
}
@Override protected void onDestroy() { super.onDestroy(); }
}
|