1.创建适配器。可以根据自己的需要创建构造方法;
public class MyRecycleAdapter extends RecyclerView.Adapter<MyRecycleAdapter.MyHolder>{
private Context mcontext;
private OnItemClickListener monItemClickListener;
private OnItemLongListener monItemLongListener;
private List list;
private int index = -1;
public MyRecycleAdapter(List list, Context context, OnItemClickListener onItemClickListener, OnItemLongListener onItemLongListener) {
this.list = list;
this.mcontext = context;
this.monItemClickListener = onItemClickListener;
this.monItemLongListener = onItemLongListener;
}
public MyRecycleAdapter(List list, Context context, OnItemLongListener onItemLongListener) {
this.list = list;
this.mcontext = context;
this.monItemLongListener = onItemLongListener;
}
public MyRecycleAdapter(List list, Context context) {
this.list = list;
this.mcontext = context;
}
public MyRecycleAdapter( Context context,OnItemClickListener onItemClickListener) {
this.mcontext = context;
this.monItemClickListener = onItemClickListener;
}
@NonNull
@Override
public MyRecycleAdapter.MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new MyHolder(LayoutInflater.from(mcontext).inflate(R.layout.recycle_item,parent,false));
}
@Override
public void onBindViewHolder(@NonNull MyRecycleAdapter.MyHolder holder, @SuppressLint("RecyclerView") int position) {
boolean checked = position == index;
holder.tv_item.setText(String.valueOf(list.get(position)));
if(checked){
holder.imageView.setImageResource(R.drawable.bg_item1);
}else{
holder.imageView.setImageResource(R.drawable.bg_item);
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
monItemClickListener.onClick(position);
}
});
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
monItemLongListener.onClick(position);
return false;
}
});
}
@Override
public int getItemCount() {
return list.size();
}
class MyHolder extends RecyclerView.ViewHolder{
private TextView tv_item;
private ImageView imageView;
public MyHolder(@NonNull View itemView) {
super(itemView);
tv_item = itemView.findViewById(R.id.tv_item);
imageView = itemView.findViewById(R.id.imageView);
}
}
public interface OnItemClickListener{
void onClick(int pos);
}
public interface OnItemLongListener{
void onClick(int pos);
}
public void setSelection(int pos) {
//将前面点击事件传递进来的点击的位置赋值给index
index = pos;
//一定要刷新数据
notifyDataSetChanged();
}
}
2.设置适配器
public class MessageBackActivity extends AppCompatActivity implements View.OnClickListener {
List list;
List list1;
MyRecycleAdapter adapter;
MyRecycleAdapter adapter1;
RecyclerView recyclerView;
ImageView imageView10,img_back;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏
getSupportActionBar().hide();//隐藏标题栏
setContentView(R.layout.activity_message_back);
recyclerView = findViewById(R.id.recyclerView);
list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
GridLayoutManager layoutManager = new GridLayoutManager(this, 3);
recyclerView.setLayoutManager(layoutManager);
adapter = new MyRecycleAdapter(list, this, new MyRecycleAdapter.OnItemClickListener() {
@Override
public void onClick(int pos) {
adapter.setSelection(pos);//调用方法传参
}
}, new MyRecycleAdapter.OnItemLongListener() {
@Override
public void onClick(int pos) {
}
});
recyclerView.setAdapter(adapter);
}
}