Recyclerview的條目點選事件
阿新 • • 發佈:2019-01-27
自定義的Adapter
public class GoodAdapter extends RecyclerView.Adapter<GoodHolder> implements View.OnClickListener {
Context context;
List<GoodBean.DataBean> data;
private OnItemClickListener onItemClickListener=null;
public GoodAdapter(Context context, List<GoodBean.DataBean> data, OnItemClickListener onItemClickListener ) {
this.context=context;
this.data=data;
this.onItemClickListener=onItemClickListener;
}
@Override
public GoodHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.good_list_layout, parent, false);
GoodHolder goodHolder = new GoodHolder(view);
view.setOnClickListener(this);
return goodHolder;
}
@Override
public void onBindViewHolder(GoodHolder holder, int position) {
//賦值
String[] split = data.get(position).getImages().split("\\|");
//設定圖片
Glide.with(context).load(split[0]).into(holder.getImage());
//設定標題
holder.getText_title().setText(data.get(position).getTitle());
//設定價格
holder.text_price.setText("¥"+data.get(position).getPrice());
//設定tag給回撥的引數當中
holder.itemView.setTag(position);
}
@Override
public int getItemCount() {
return data.size();
}
@Override
public void onClick(View v) {
onItemClickListener.onItemClick(v, (int) v.getTag());
}
}
Avtivity
public class SearchActivity extends AppCompatActivity {
public OnItemClickListener onItemClickListener = new OnItemClickListener() { @Override public void onItemClick(View view, int position) { //i為當前條目 }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search);}
}
自定義介面
public interface OnItemClickListener { void onItemClick(View view , int position); }