在我的 recyclerview
中,有一些用户可以添加为最爱的项目。
当用户单击该项目的 +
图标时,我将使用 2 个按钮打开 Bottom Sheet Dialog
。 是
或否
。一旦我点击是, Collection 将被保存。
我通常会针对正常点击执行此操作,但我如何针对任何点击将其实现到 RecyclerView 适配器?
适配器类
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
String urlExtension = "http://192.168.1.110/myapp/public/images";
Glide.with(context).load(urlExtension+itemList.get(position).getList_image()).into(holder.imageView_list_city);
holder.textView_list_city_name.setText(itemList.get(position).getList_name());
holder.textView_list_city_desc.setText(itemList.get(position).getList_description());
holder.layout_item_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "add", Toast.LENGTH_SHORT).show();
}
});
holder.layout_item_detail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "detail", Toast.LENGTH_SHORT).show();
}
});
}
Bottom Sheet 类
public class BottomSheetList extends BottomSheetDialogFragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.bottom_sheet_add, container, false);
return view;
}
}
最佳答案
点击后您需要位置。
在 ViewHolder 中设置 OnClickListener 并使用 getAdapterPosition()
获取点击项目的位置,然后调用鞋底 View
static class Holder extends RecyclerView.ViewHolder {
Button btnAdd;
OnItemClickListener onItemClickListener;
Holder(final View itemView) {
super(itemView);
btnAdd.setOnClickListener(view -> {
onItemClickListener.onItemClick(getAdapterPosition());
});
}
void setItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
}
界面
interface OnItemClickListener {
void onItemClick(int position);
设置监听器
holder.setItemClickListener(this);
@Override
public void onItemClick(int position) {
View modelBottomSheet = LayoutInflater.from(mContext).inflate(R.layout.layout, null);
BottomSheetDialog dialog = new BottomSheetDialog(mContext);
dialog.setContentView(modelBottomSheet);
dialog.show();
}
关于java - RecyclerView 项目单击的 Bottom Sheet 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805152/