我有一个主Activity和一个Dialog,我希望通过它来更改一些应用程序变量。遗憾的是,这包括更改几个不同类的现有实例的属性。我想做的是调用我的主Activity的方法,该方法将处理更改Activity的变量和修改现有的类实例。在我的Dialog中,我打电话给
mainActivity.smartSetter(variableName, variableValue);
在我的活动中我有
public void smartSetter(variableName name, float value) {
switch (name) {
case Name1: {do stuff}
case Name2: {do stuff}
//etc
}
编译器说我无法对非静态方法smartSetter进行静态引用。作为一个Java noob,我怀疑是因为需要在mainActivity的实例上调用smartSetter,而不仅仅是类本身。请有人澄清一下吗?
此外,这个问题似乎是由于应用程序架构的设计不佳引起的,所以我欢迎任何可以帮助我改进设计的建议,以便它更加实用和优雅。