如何解决Android Studio-如何在不使用按钮的情况下将数据从活动传递到片段
就像我在标题中说的那样,我想将数据从活动发送到片段,但是片段需要使用创建时收到的数据,而不是像平常一样按下按钮之后。将值放入捆绑包的活动是调用该片段的活动之前的活动,因此,在调用该片段时,捆绑包已被填充。
从我的研究中,做到这一点的最佳方法是使用捆绑软件,但是当我执行String data = bundle.getString("value")
时,我会得到一个空指针异常,这意味着捆绑软件为空,但是我已经检查了并且值在那里。我该如何解决?
解决方法
最好使用Eventbus来将数据活动传递给片段,这很简洁。
1-注册/注销事件总线
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
2-定义事件类
public class Message{
public final String message;
public Message(String message){
this.message = message;
}
}
3-在您应用程序中的任何位置发布此事件
EventBus.getDefault().post(new Message("hello world"));
4-订阅该事件以在您的片段中接收它
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessage(Message event){
mytextview.setText(event.message);
}
更多详细信息: https://github.com/greenrobot/EventBus
How to pass data between fragments
https://androidwave.com/fragment-communication-using-eventbus/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。