我有一个名为Main2Activity的活动,它包含一个变量" double result1"设置等于表达式。它看起来像这样:
double result1 = n1 * 2 - 29;
(其中n1是用户给出的输入)
我试图在另一个名为MainActivityEnd的类中使用此变量。我试过这个:
double finalResult = Main2Activity.result1 * 4;
当我使用setText
在Main2Activity中打印result1时,它会输出正确的值。
但是当我使用finalResult
在MainActivityEnd
打印setText
时,它始终打印0.0
这有什么理由吗?
感谢您的帮助!
答案 0 :(得分:2)
如果活动在同一个流程中,您应该使用以下Android方式 - 意图。简而言之,Intent是Android在按顺序启动时改变活动之间价值的方式。
因此,您应该在Main2Activity中执行以下操作:
Intent intent = new Intent(Main2Activity.this, MainActivityEnd.class);
intent.putExtra("name", variable);
startActivity(intent);
Main2Activity启动MainActivityEnd。 Intent充满了MainActivityEnd需要的数据,在这种情况下是"变量"。
之后你应该在MainActivityEnd onCreate()方法中捕获Intent,如下所示:
Intent intent = getIntent();
double finalResult = intent.getDoubleExtra("name", 0);
其中"姓名"与Main2Activity中给出的名称相同,如果在Main2Activity中没有附加到Intent的double值,则0是默认值。
这是Android中此行为的最常见用法。
答案 1 :(得分:0)
像其他人已经在这里提到的那样使用request
或Intents
。
但是,如果您计划放置一些全局逻辑(如方法),则使用Application类。
您可以像这样扩展Application类:
SharedPreferences
然后在你的活动中的任何一个:
public class YourApplication extends Application {
public double result1 = 29;
}
确保您正确命名了应用程序类,它应该是YourApplication app = (YourApplication) this.getApplication();
System.out.printl(app.result1);
。并且不要忘记将新的应用程序类放入[YOUR_APP_NAME]Application
:
manifest