对于这个项目,我使用的是Android Studio。 我尝试了很多东西。
目标: 我想创建一个要求用户输入数据的应用程序。需要保存数据,然后在另一个屏幕上调用数据作为用户可以看到的日志历史记录。
我做了什么: 我有三个类:“InputScreen”“Logs”“LogHistoryScreen”
我尝试在InputScreen上创建Logs对象,它完全正常,例如:Logs log1 = new Logs();但我不知道如何从LogHistoryScreen调用InputScreen中的对象log1。谁有任何建议?
提前致谢。
答案 0 :(得分:2)
在InputScreen类中创建日志列表:
List<Log> logs = new ArrayList();
logs.add(log1);
// same for next logs.
然后在InputScreen中创建一个方法,该方法将返回日志列表。像这样:
public List<Log> getAllLogs() {
return logs;
}
从LogHistoryScreen中调用此方法,如:
InputScreen inputScreen = new InputScreen();
List<Log> logs = inputScreen.getAllLogs();
答案 1 :(得分:0)
您可以在此处使用各种选项。我会在这里提一些。
1)通过意图。
从InputScreen打开LogHistoryScreen时,将Object作为参数传递。
请按照以下代码执行此操作。
Intent intent = new Intent(this, LogHistoryScreen.class);
intent.putExtra("Key", yourObject);
startActivity(intent);
在LogHistoryScreen活动的onCreate()中接收对象
Log log = (Log)getIntent().getSerializableExtra("Key");
Log.class必须实现Serializable。
public class Log implements Serializable
{
}
2)将对象存储在数据库中并从其他活动中检索它。如果您需要数据在应用会话中保持不变,这将特别有用。
我认为第一个选项会对你有所帮助。