两个适配器之间的通信

时间:2015-07-16 17:24:55

标签: java android

我正在寻找解决方案,用几句话来实现,如何对适配器B中发生的适配器A中的事件作出反应。更明显地看这些图像。

我有两个标签,搜索和收藏的结果,首先我有图像列表,当我按收藏夹图标时,它会保存到书签,然后我想按图标删除图像,一切都很好,但在结果标签上,此图像仍将标记为喜欢的图像。

选择为收藏夹

first

如果您按下按钮,图像将从收藏夹中删除,但在上一个标签上会将其标记为收藏夹,如上所示。

second

我如何实现两个适配器之间的通信或类似的东西,任何建议?谢谢。

3 个答案:

答案 0 :(得分:0)

在适配器A上发生事件然后broadcast事件和适配器B将接收广播以采取某些行动。

答案 1 :(得分:0)

找到一个解决方案,在适配器B 中从findFragmentByTag调用Context,获取片段实例,转到适配器A ,调用相应的方法。它在代码中的样子:

适配器B

  private void changeIconOnResults(int position){
    MainActivity activity = (MainActivity)context;
    resultFragment = (ResultOfSearch)(activity.getSupportFragmentManager().findFragmentByTag(activity.pagerAdapter.getTag(0)));
    resultFragment.adapter.removeSavedUrl(pathList.get(position),false);
}

适配器A

 public void removeSavedUrl(String url,boolean isInternalAccess){
    savedURLs.remove(url);//remove from itemList
    if(!isInternalAccess) {
        for (int i = 0; i <imageList.size() ; i++) {
            if(TextUtils.equals(imageList.get(i).getLink(),url)) {
                imageList.get(i).setIsFavourite(false);//uncheck from pojo
                this.notifyItemChanged(i);
            }
        }

    }
}

答案 2 :(得分:0)

类似的问题,但不是这样的。 我在顶部带有单独的适配器的RecyclerView 在底部的Grid View中使用单独的适配器(两者都在相同的活动中)。当我点击任何位置时单击RecyclerView时,相应的网格项必须翻转/动画

抱歉,如果包含错误的语法/拼写错误