Adapter 中代码,包括点击事件
public class RecyclerViewAdapter extends RecyclerView.Adapter {
// private int[] pics;
// private String[] names;
private ArrayList<Bean> list;
public static final int TYPE_PULL_IMAGE = 0;
public static final int TYPE_RIGHT_IMAGE = 1;
public static final int TYPE_THREE_IMAGE = 2;
private TextView name;
private ImageView imageView;
private ImageView imageView2;
private TextView name2;
public RecyclerViewAdapter(ArrayList<Bean> list) {
this.list = list;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType==TYPE_PULL_IMAGE){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);
PullImageHolder pullImageHolder=new PullImageHolder(view);
return pullImageHolder;
}else if(viewType==TYPE_RIGHT_IMAGE){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item2, parent, false);
RightImageHolder rightImageHolder=new RightImageHolder(view);
return rightImageHolder;
}else {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item3, parent, false);
ThreeImageHolder threeImageHolder=new ThreeImageHolder(view);
return threeImageHolder;
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
int itemViewType = viewHolder.getItemViewType();
if(itemViewType==TYPE_PULL_IMAGE){
this.name.setText(list.get(i).getName());
imageView.setBackgroundResource(list.get(i).getImageView());
}else if(itemViewType==TYPE_RIGHT_IMAGE){
imageView2.setBackgroundResource(list.get(i).getImageView());
}else {
name2.setText(list.get(i).getName());
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
removeItem(i);
onItemClickListener.OnItemClickListener(i);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public void removeItem(int position) {
list.remove(position);
notifyItemRemoved(position);
}
@Override
public int getItemViewType(int position) {
//return super.getItemViewType(position);
if (position%2==0){
return TYPE_PULL_IMAGE;
}else if(position%3==0){
return TYPE_RIGHT_IMAGE;
}else {
return TYPE_THREE_IMAGE;
}
}
public class PullImageHolder extends RecyclerView.ViewHolder{
public PullImageHolder(@NonNull View itemView) {
super(itemView);
name = itemView.findViewById(R.id.name);
imageView = itemView.findViewById(R.id.item_pic_iv);
}
}
public class RightImageHolder extends RecyclerView.ViewHolder{
public RightImageHolder(@NonNull View itemView) {
super(itemView);
imageView2 = itemView.findViewById(R.id.item_pic_iv2);
}
}
public class ThreeImageHolder extends RecyclerView.ViewHolder{
public ThreeImageHolder(@NonNull View itemView) {
super(itemView);
name2 = itemView.findViewById(R.id.name2);
}
}
MainActivity 中实现RecyclerView中的OnItemClickListener(实现接口回调)
public class MainActivity extends AppCompatActivity implements RecyclerViewAdapter.OnItemClickListener{
private RecyclerView recyclerView;
private String[] name;
private int[] pics;
private RecyclerViewAdapter viewAdapter;
private ArrayList<Bean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
initView();
}
private void initView() {
initData();
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
viewAdapter = new RecyclerViewAdapter(list);
recyclerView.setAdapter(viewAdapter);
viewAdapter.setOnItemClickListener(this);
}
private void initData() {
pics=new int[]{R.mipmap.c,R.mipmap.ic_launcher,R.mipmap.c,R.mipmap.ic_launcher,R.mipmap.c,R.mipmap.c,R.mipmap.ic_launcher,R.mipmap.c,R.mipmap.ic_launcher,R.mipmap.c,R.mipmap.c,R.mipmap.ic_launcher,R.mipmap.c,R.mipmap.ic_launcher,R.mipmap.c};
// name = new String[]{"景点1","景点2","景点3","景点4","景点5","景点1","景点2","景点3","景点4","景点5","景点1","景点2","景点3","景点4","景点5"};
list = new ArrayList<>();
for (int i = 0; i < 14; i++) {
list.add(new Bean(pics[i],"景点"+i));
}
}
@Override
public void OnItemClickListener(int pos) {
Toast.makeText(MainActivity.this,list.get(pos).getName(),Toast.LENGTH_SHORT).show();
}
}