android - RecyclerView 适配器的 onBind 方法
问题描述
我的 MainActivity 3 RecyclerViews 中有。
其中一个在底部工作表中,它是主要工作表(默认情况下,底部工作表是 Open To Display this one ),在其适配器的 onbind 方法中,我创建了一个onClickListener以便当用户单击其中的项目时我想要,
我想回到主活动类来设置启动它的方法是关闭底部表并设置下一个回收视图的数据(将在底部表关闭时出现)
.....这里的问题是如何从onBind方法的Listener启动这个方法,并给它一个来自这个viewHolder的参数作为它的名字和它的一些属性
如果有不清楚的地方请告诉我
@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int position) {
viewHolder.categoryImage.setImageResource(mRowOfCategories.get(position).getCategoryImage());
viewHolder.categoryName.setText(mRowOfCategories.get(position).getCategoryName());
viewHolder.mCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
解决方案
最简单的:
您在 Activity 中声明要调用的方法。它必须是公开的:
public void method(){}
然后,在 Adapter 的 Constructor 中,将 Activity 的引用作为参数传递:
public MyAdapter(Activity activity){}
并且,在 onBindViewHolder 中:
MyActivity mActivity=(MyActivity)activity;
mActivity.method();
推荐阅读
- javascript - CSS 未正确应用于由 JQuery 创建的元素,但在检查元素中切换元素时神奇地得到纠正
- command-line - Ping 错误 ping:-l 标志:不允许操作
- c# - Task.IsCompleted 使用缓存标志的原因是什么?
- python - 使用具有指定值集的 OneHotEncoder
- python - 将图像从一张较大的图像中分离出来
- laravel - 如何在同一个域上指向多个 laravel 项目?
- java - 为什么新用户使用 Spring Boot 注册后无法登录?
- sql - 显示值在组中至少出现一次的所有行
- postgresql - 从 nodejs 服务器发送到 postgres 的查询永远不会超时
- silverstripe - SilverStripe:如何设置/指定 GridField 自定义操作按钮的图标