如何将视图活动中的数据发送到主要活动?共享偏好或意图的替代方案?

时间:2016-05-11 17:29:28

标签: java android

我真的让自己陷入了困境。他们只有我可以访问我的数据的方式来自我的可视化工具的视图活动是在视图类中。我非常感谢有关我应该怎么做的任何想法!欢呼声。

1 个答案:

答案 0 :(得分:0)

如果您已经排除了SharedPrefs和Intents,我会想到一个非常好的第三方库:Eventbus。这对于这类事物来说非常棒,并且它非常易于使用。

只需查看文档,您就可以使用此库获得很多乐趣。有一个关于如何开始使用它的教程,而且非常简单。 我非常愉快地使用它

编辑:(添加示例)

首先制作你的自定义类(它可以非常简单):

public class LoginErrorEvent {
    private int errorCode;

    public LoginErrorEvent(int errorCode) {
        this.errorCode = errorCode;
    }
}

这个类可以包含你想要的任何类型的字段,但是因为你要求int,所以假设它只有1个int字段。

现在您想要在您想要发送数据的地方做些什么:

eventBus.post(new LoginErrorEvent(errorCode));

当然,您需要按照教程操作并初始化活动/片段onCreate中的EventBus(EventBus.getDefault();

您现在需要做的就是通过编写这样的方法在您想要捕获它的地方监听该事件:

@Subscribe
public void onLoginErrorEvent(LoginErrorEvent loginErrorEvent){
    //your logic here, do whatever you wish with your int
    int errorCode = loginErrorEvent.getErrorCode();
    ........
    .....
}
  

请记住,方法的名称不一定是onLoginErrorEvent,它可以是foo之类的,但遵循这样一个有意义的名称是一个很好的约定。关于该方法唯一重要的是它有一个参数,它是你想要捕获的Event的类型。