Java 从类创建对象。保存对象。从第三个类调用对象

Java 从类创建对象。保存对象。从第三个类调用对象,java,android,Java,Android,对于这个项目,我使用的是Android Studio。 我试过很多东西 目标: 我想创建一个应用程序,要求用户输入数据。数据需要保存,然后在另一个屏幕上调用,作为用户可以看到的日志历史记录 我所做的: 我有三个类:“InputScreen”“Logs”“LogHistoryScreen” 我尝试在InputScreen上创建Logs对象,它工作得非常好,比如:Logs log1=new Logs();但是我不知道如何从LogHistoryScreen调用InputScreen中生成的对象log1

对于这个项目,我使用的是Android Studio。 我试过很多东西

目标: 我想创建一个应用程序,要求用户输入数据。数据需要保存,然后在另一个屏幕上调用,作为用户可以看到的日志历史记录

我所做的: 我有三个类:“InputScreen”“Logs”“LogHistoryScreen”

我尝试在InputScreen上创建Logs对象,它工作得非常好,比如:Logs log1=new Logs();但是我不知道如何从LogHistoryScreen调用InputScreen中生成的对象log1。有人有什么建议吗


提前感谢。

在InputScreen类中创建日志列表:

List<Log> logs = new ArrayList();
logs.add(log1);
// same for next logs.
List logs=new ArrayList();
logs.add(log1);
//下一个日志也一样。
然后在InputScreen中创建一个方法,该方法将返回日志列表。大概是这样的:

public List<Log> getAllLogs() {
  return logs;
}
public List getAllLogs(){
返回日志;
}
从LogHistoryScreen调用此方法,如下所示:

InputScreen inputScreen = new InputScreen();
List<Log> logs = inputScreen.getAllLogs();
InputScreen InputScreen=新的InputScreen();
列表日志=inputScreen.getAllLogs();

在InputScreen类中创建日志列表:

List<Log> logs = new ArrayList();
logs.add(log1);
// same for next logs.
List logs=new ArrayList();
logs.add(log1);
//下一个日志也一样。
然后在InputScreen中创建一个方法,该方法将返回日志列表。大概是这样的:

public List<Log> getAllLogs() {
  return logs;
}
public List getAllLogs(){
返回日志;
}
从LogHistoryScreen调用此方法,如下所示:

InputScreen inputScreen = new InputScreen();
List<Log> logs = inputScreen.getAllLogs();
InputScreen InputScreen=新的InputScreen();
列表日志=inputScreen.getAllLogs();

您可以在这里使用各种选项。我将在这里提到几个

1)通过意图。

从InputScreen打开LogHistory屏幕时,将对象作为参数传递

请按照以下代码进行操作

Intent intent = new Intent(this, LogHistoryScreen.class);
intent.putExtra("Key", yourObject);
startActivity(intent);
在LogHistoryScreen活动的onCreate()中接收对象

Log log = (Log)getIntent().getSerializableExtra("Key");
Log.class必须实现可序列化

public class Log implements Serializable
{
}
2)将对象存储在数据库中并从其他活动中检索它。如果您需要数据在应用程序会话中持久化,这将特别有用


我认为第一个选项对您更有帮助。

这里有各种选项可供您使用。我将在这里提到几个

1)通过意图。

从InputScreen打开LogHistory屏幕时,将对象作为参数传递

请按照以下代码进行操作

Intent intent = new Intent(this, LogHistoryScreen.class);
intent.putExtra("Key", yourObject);
startActivity(intent);
在LogHistoryScreen活动的onCreate()中接收对象

Log log = (Log)getIntent().getSerializableExtra("Key");
Log.class必须实现可序列化

public class Log implements Serializable
{
}
2)将对象存储在数据库中并从其他活动中检索它。如果您需要数据在应用程序会话中持久化,这将特别有用


我认为第一个选项对您更有帮助。

如果您想将这些日志存储在内存中,可以使用数据库存储的概念!!如果要将这些日志存储在内存中,可以使用数据库存储的概念!!谢谢你试着帮助我。我在logs.add(log1)处出错;它有一条红色下划线,上面写着“列表中的内容无法应用”。这是类InputScreen中的方法:public void button pressed(){Logs log1=new Logs(150);List Logs=new ArrayList();Logs.add(log1);}请专门创建日志类型对象的列表。啊,好的,现在我明白了。非常感谢你!谢谢你试着帮助我。我在logs.add(log1)处出错;它有一条红色下划线,上面写着“列表中的内容无法应用”。这是类InputScreen中的方法:public void button pressed(){Logs log1=new Logs(150);List Logs=new ArrayList();Logs.add(log1);}请专门创建日志类型对象的列表。啊,好的,现在我明白了。非常感谢你!