首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过适配器与notifyDataSetChanged()进行通信

通过适配器与notifyDataSetChanged()进行通信
EN

Stack Overflow用户
提问于 2014-11-03 10:33:55
回答 2查看 310关注 0票数 0

我实现了下图所描述的情况:

问题是:

当我更新gridView 1时,我必须更新GridView 2,如何才能做到这一点呢?我只能通过执行一个新的Volley请求在其适配器中更新GridView 2,也许我可以通过在片段2中重新设置适配器来实现这一点,我可以使用适配器GridView 1中对片段2的引用吗?

详细信息:-- GridView 1是在适配器本身发出截击请求后在适配器上执行的notifyDataSetChanged()更新的。我不能使用片段2的onResume()方法,因为它没有被调用,因为它是在片段1同时显示的。

有什么想法吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-05 13:15:59

监听器只是JAVA中的一个接口。因此,您不能创建接口的对象(“新”操作符)。

1)创建一个接口

代码语言:javascript
运行
复制
public Interface OnUpdateGridView2Listener{
      public void onUpdate() //Add the kind of data you want in the parameters
}

2)在gridView1适配器中创建接口成员并调用其方法

代码语言:javascript
运行
复制
public GidViewAdapter1 extends Adapter{
     private OnUpdateGridView2Listener myListener;

     //Your code

     @Override
     public void notifyDataSetChanged(){
           //Your code
           myListener.onUpdate();
     }

     public void setOnUpdateGridView2Listener(OnUpdateGridView2Listener list){  
           this.myListener = list;     
     }
}

3)在片段中实现接口并通知适配器

代码语言:javascript
运行
复制
public FragmentGridView2 extends Fragment implements OnUpdateGridView2Listener{

      @Override
      public void onUpdate(){
            //Your code
            gridView2Adapter.notifyDataSetChanged();
      }
}      

4)在您的活动中,在创建fragmentGridView1时设置侦听器

代码语言:javascript
运行
复制
public YourActivity{

      //Your code

      FragmentGridView1 fragment = new FragmentGridView1();
      fragment.setOnUpdateGridView2Listener(getApplication());
}
票数 3
EN

Stack Overflow用户

发布于 2014-11-05 02:36:22

您可以尝试实现如下的侦听器模式:

代码语言:javascript
运行
复制
FragmentTab2 {

    private interface DataListener {
        public Data getData();
    }

    private DataListener dataListener = new DataListener();

    Data = dataListener.getData();

}


FragmentTab1 implements DataListener {

    @Override
    public Data getData() {
        return Data;
    }

}

如果您需要通知、注册和取消注册侦听器,请在这里尝试如下:观测器设计模式

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26712340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档