Android 如何从一个活动接收(放置)数据到另一个活动中的recyclerview适配器
我有一个关于标签的活动,在这样的标签回收视图中。当我单击recyclerview中的项目时,打开另一个(详细信息)活动。在详细活动中,我有“收藏夹”按钮,我想在适配器中发送布尔值。我的问题是:如何将数据从细节活动传递到recyclerview的适配器。问题在于活动中并没有适配器的实例,并且我并没有将自定义侦听器设置为适配器 我试图实现接口Android 如何从一个活动接收(放置)数据到另一个活动中的recyclerview适配器,android,callback,android-recyclerview,adapter,Android,Callback,Android Recyclerview,Adapter,我有一个关于标签的活动,在这样的标签回收视图中。当我单击recyclerview中的项目时,打开另一个(详细信息)活动。在详细活动中,我有“收藏夹”按钮,我想在适配器中发送布尔值。我的问题是:如何将数据从细节活动传递到recyclerview的适配器。问题在于活动中并没有适配器的实例,并且我并没有将自定义侦听器设置为适配器 我试图实现接口 public interface OnFavoriteListener { void changeIcon(int position, boolean fa
public interface OnFavoriteListener {
void changeIcon(int position, boolean favorite);
}
和重写方法onPause in detail活动
@Override
public void onPause() {
super.onPause();
if (mFavoriteListener != null) {
mFavoriteListener.changeIcon(mPosition, mFavorite);
}
}
然后在我的适配器中实现侦听器
@Override
public void changeIcon(int position, boolean favorite) {
mResource.get(position).setFavorite(favorite);
}
当我从detail activity返回到recyclerview时,什么也没有发生使用您的AppName创建一个应用程序类
public class YourAppName extends Application {
private static YourAppName mInstance;
private static ArrayList<YourModel> source; //This is your mSourceList
@Override
public void onCreate() {
super.onCreate();
setmInstance(this); //this is a setter for mInstance value
}
public static synchronized YourAppName getInstance() {
return mInstance;
}
public static void setmInstance(YourAppName mInstance) {
YourAppName.mInstance = mInstance;
}
并使用YourAppName.getInstance().source
而不是mSource list设置recyclerView适配器
然后转到detailActivity onPause()
删除旧的interfaceMethod并编写以下内容
YourAppName.getInstance.source.get(position).setFavorite(favorite);
在onResume()中返回活动调用adapter.notifySetDataChanged()
代码>
它将为您工作。使用您的AppName创建一个应用程序类
public class YourAppName extends Application {
private static YourAppName mInstance;
private static ArrayList<YourModel> source; //This is your mSourceList
@Override
public void onCreate() {
super.onCreate();
setmInstance(this); //this is a setter for mInstance value
}
public static synchronized YourAppName getInstance() {
return mInstance;
}
public static void setmInstance(YourAppName mInstance) {
YourAppName.mInstance = mInstance;
}
并使用YourAppName.getInstance().source
而不是mSource list设置recyclerView适配器
然后转到detailActivity onPause()
删除旧的interfaceMethod并编写以下内容
YourAppName.getInstance.source.get(position).setFavorite(favorite);
在onResume()中返回活动调用adapter.notifySetDataChanged()
代码>
它将对您有效。首先,假设当“详细信息活动”弹出时,您单击“收藏夹”将布尔值设置为“true”。因此,在此之后,您将关闭“详细信息活动”,因此当您单击“收藏”时,您应该在“主要活动”中获取您的recyclerView,并调用notifyItemChanged()将数据源中的值设置为“true”。您可以编写一个“get()”方法来获取“主活动”中的recyclerView。首先,假设当“详细活动”弹出时,您单击“收藏夹”将布尔值设置为“true”。因此,在此之后,您将关闭“详细信息活动”,因此当您单击“收藏”时,您应该在“主要活动”中获取您的recyclerView,并调用notifyItemChanged()将数据源中的值设置为“true”。您可以编写一个“get()”方法来获取“主活动”中的recyclerView。我没有适配器的详细实例activity@ZolkiBy你现在能控制答案了吗?我还没有适配器的详细实例activity@ZolkiBy你现在能控制答案吗。