Java 方法和类混淆

Java 方法和类混淆,java,android,Java,Android,我有两个活动类(其中一个和方法类在同一个包中,另一个在另一个包中-但我认为这没有问题)和一个名为方法的帮助类,我在其中分配变量去极化、getter和setter。 当我想在第一个activity类中像字符串数组一样存储一些数据时,我会这样做: Methods met = new Methods(); met.StoreSomething[0] = ("qwerty") 当我打电话让它进入同一个班级时,效果很好: met.GetSomething[0]. 问题是我什么时候想得到二等舱的数据。我

我有两个活动类(其中一个和方法类在同一个包中,另一个在另一个包中-但我认为这没有问题)和一个名为方法的帮助类,我在其中分配变量去极化、getter和setter。 当我想在第一个activity类中像字符串数组一样存储一些数据时,我会这样做:

Methods met = new Methods();
met.StoreSomething[0] = ("qwerty")
当我打电话让它进入同一个班级时,效果很好:

met.GetSomething[0].
问题是我什么时候想得到二等舱的数据。我以同样的方式声明:

Methods met = new Methods();
met.GetSomething[0];
但在此之后,我得到了空数组。
我想,当我在第二个活动类中声明new met时,这次我创建了与第一个类中的对象没有链接的新对象。但我不确定。有人能帮我吗?如何解决此问题?

您可以使用
static
在类之间共享属性。

为了简单起见,尝试使用SharedReferences在活动之间存储和检索数据
如果您不想保留。在第二个活动中检索数据后,只需将其删除或清除SharedReferences对象即可

如果您希望访问Activity1和Activity2类中相同的方法实例,那么有几种方法可以实现此目标:

但在开始创建方法ISNTANCE之前,请注意: 在你的问题中,你说“当我想在第一个活动类中存储一些数据时…”。这是不对的。Yu总是从一个类的实例开始工作。因此,您一定创建了Activity1和Activity2的实例

如果这两个活动实例可以相互“对话”,那么创建方法实例的第一个实例应该将引用发送到第二个活动实例。然后,两个活动实例都引用了相同的方法实例,并且一个实例设置的内容可以由另一个实例检索

2) 如果活动实例不能相互通信,也许可以使用单例方法:将方法的构造函数设为私有,并向getInstance()等方法添加静态方法。第一次调用getInstance时,它可以创建方法的实例,并将其存储在方法中的静态变量中。 对getInstance的下一个调用只返回相同的实例。因此,两个活动实例都引用了相同的方法实例,并且它们可以设置/获取相同的数据

3) 如果不希望只有一个Methods实例,可以使用第二个解决方案的变体:向getInstance方法添加一个键(两个活动实例都必须知道该键),并为每个新键创建一个新的Methods实例。如果两个活动类使用相同的键,它们将接收相同的引用,并且可以再次交换数据

4) 您可以在方法中使方法“storeSomething”和“getSomething”成为静态的。然后,方法的所有实例将使用相同的数据,并且您的活动实例可以再次交换数据


我希望这些泥浆中的一种能帮助你解决你的问题

你说得对。您在两个位置创建了两个实例,它们不会自动具有相同的值。您需要在活动之间存储对象,或者将对象作为参数传递。此外,您的两个cone代码段都在实例化一个名为“Methods”的类。你有两个同名的类吗?好的,但在这种情况下,getter和setter的范围是什么?只有第一个活动类、packet还是其他活动类?@fsanches你是什么意思?一个类可以被实例化很多次……当然不,让我们这样来定义它:Activity1,Activity2,方法。类方法的声明对象在Activity1和2中应该是什么样子?是的,但在这种情况下,我不能从ActivityClass位置更改变量。不,你可以,静态属性始终保留在内存中,永远不会被破坏,只有当你关闭应用程序时。因此,您可以在运行时随时更改它们。您是否尝试将其放入循环并使用索引作为键,例如(int i=0;i