Android 如何从一个活动接收(放置)数据到另一个活动中的recyclerview适配器

Android 如何从一个活动接收(放置)数据到另一个活动中的recyclerview适配器,android,callback,android-recyclerview,adapter,Android,Callback,Android Recyclerview,Adapter,我有一个关于标签的活动,在这样的标签回收视图中。当我单击recyclerview中的项目时,打开另一个(详细信息)活动。在详细活动中,我有“收藏夹”按钮,我想在适配器中发送布尔值。我的问题是:如何将数据从细节活动传递到recyclerview的适配器。问题在于活动中并没有适配器的实例,并且我并没有将自定义侦听器设置为适配器 我试图实现接口 public interface OnFavoriteListener { void changeIcon(int position, boolean fa

我有一个关于标签的活动,在这样的标签回收视图中。当我单击recyclerview中的项目时,打开另一个(详细信息)活动。在详细活动中,我有“收藏夹”按钮,我想在适配器中发送布尔值。我的问题是:如何将数据从细节活动传递到recyclerview的适配器。问题在于活动中并没有适配器的实例,并且我并没有将自定义侦听器设置为适配器

我试图实现接口

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你现在能控制答案吗。