微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 使用接口侦听器将数据从活动发送到片段

我正在尝试将数据从活动发送到片段.我不是将数据从片段发送到活动.除了在活动中实例化接口侦听器对象之外,我已经正确设置了所有内容.

public class Activity extends AppCompatActivity {

  private FragmentInterface fragmentInterfaceListener;

  @Override 
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // This line below is actually in a button onClick()
    fragmentInterfaceListener.sendDataMethod(dataToSend);

  }

  public interface FragmentInterface {
    void sendDataMethod(SampleData sampleData);
    }
  }

然后在片段中,我有

public static class CustomFragment extends Fragment implements Activity.FragmentInterface {

  @Override
  public void sendDataMethod(final SampleData sampleData) {

  }    
}

当我在按钮onClick()上放置一条日志行时,单击按钮时会出现日志行.不,我不打算将sampleData放在片段包中.是的,我需要通过接口发送数据.那么如何在Activity中正确实例化fragmentInterfaceListener对象呢?我在Activity或CustomFragment中缺少其他任何内容吗?

解决方法:

在这里缺少的是注册部分.

片段必须向活动监听器注册自己,以便在事件发生时发送数据.为此,在活动中创建一个方法

private void setonDataListener(FragmentInterface interface){
    fragmentInterfaceListener=interface;
}

在你的片段的oncreate中设置这样的监听器

((YOUR_ACTIVITY_NAME)getActivity()).setonDataListener(this);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐