Java 从所有活动访问自定义对象的数组/集合,Android
我是一个刚刚进入Android Studio的新手,正在开发我的第一个应用程序,这是一种冲浪日志应用程序。基本上,每次用户外出冲浪时,都要跟踪各种天气状况 我创建了一个Java类“会话”,其中包含以下字段:Java 从所有活动访问自定义对象的数组/集合,Android,java,android,arrays,Java,Android,Arrays,我是一个刚刚进入Android Studio的新手,正在开发我的第一个应用程序,这是一种冲浪日志应用程序。基本上,每次用户外出冲浪时,都要跟踪各种天气状况 我创建了一个Java类“会话”,其中包含以下字段: 日期(日期) 位置(字符串) 潮高(浮标) 冲浪尺寸(浮动) 接下来还有更多,暂时保持简单 我的申请流程如下: 将有一个主主屏幕活动,带有按钮,还有一个小的表视图,显示您最近的3个会话。 按钮包括: 新会话:这将带您进入一个新的活动,上面的每个字段都有各种文本输入,一个日期选择器。。。
- 日期(日期)
- 位置(字符串)
- 潮高(浮标)
- 冲浪尺寸(浮动)
- 接下来还有更多,暂时保持简单
- 新会话:这将带您进入一个新的活动,上面的每个字段都有各种文本输入,一个日期选择器。。。还有一个保存按钮
- 我的会话:这将带您进入tableview,您可以在其中查看过去的所有会话。你可以按地点、日期、冲浪规模来组织它们
我想再次重申,这个数组或“会话”集合将成为应用程序的中心。我实施的几乎每一项活动都将以某种方式使用这些数据。无论是将其显示为可以以不同方式排序的tableview,还是对其运行统计分析,还是在每个位置的地图上显示PIN…我认为您希望将数据保存在数据库中,并使用发布/订阅工作流来跟踪它 例如,您可以使用。每次应用程序的某个部分进行更新时(即使是不同设备上的不同用户),代码的任何其他部分都可以侦听该更改并捕获它 Firebase只是一个例子,RejectDB、MongoDB都有这个选项
使用应用程序中的数据结构不是一个好的选择:如果需要在应用程序的不同部分之间共享数据结构,它会变得非常混乱,如果需要其他用户知道更改,它将变得不可能。我认为您应该使用基于事件的库,如RxJava2。您可以轻松订阅一条总线(主题),该总线将发送到目前为止创建的所有数据。以使其他应用程序的组件保持最新 为您指定一个特定的用例。RXjava2中有一个很棒的东西叫做重播主题 重播主题: 无论订户何时订阅,它都会发出源可观测的所有项 一个简单的实现如下所示
public class RxReplayBus {
private static ReplaySubject<Object> subject = ReplaySubject.create();
private RxReplayBus() {
// hidden constructor
}
public static Disposable subscribe(@NonNull Consumer<Object> action) {
return subject.subscribe(action);
}
public static void publish(@NonNull Object message) {
subject.onNext(message);
}
}
如果您不想共享数据,甚至可以使用纯内置SQLite。但肯定是某种数据库。每个用户积累的“会话”都是个人的。换句话说,你的日志就是你的日志,只有你的日志。我不想建立一个集体的游泳池。每个用户都有自己的个人数据集。那么提到的客户端SQLite方法@Gabeschen可能是最好的。您可能需要考虑FYI,麻烦的旧日期时间类,例如“代码> java。UTIL.DATE < /C>”现在是遗留的,由类取代。大部分java.time功能都在项目中向后移植到Java6和Java7。进一步适应项目中早期的Android。看到了,很高兴知道,谢谢。我注意到他们不赞成,并正在研究其他选择。我会调查时间的。
disposable = RxReplayBus.subscribe(new Consumer<Object>() {
@Override
public void accept(Object o) throws Exception {
}
});
disposable.dispose();