Java 将变量传递给其他类
我目前的问题是,我不知道如何管理我的变量 目前我有5项活动。因此有5个Java类。 从第3类中,总是可以看到变量 前两个类仅提供按钮。在第三个类中,我定义了变量public static int Money=100。在第四节课上,我来到了第五节课,在第五节课上,变量被更改为10。通过实施更新,我可以通过单击第5类中的按钮(例如90 money)来更改变量 这是我的问题。如果我现在使用home按钮右侧的back按钮进入活动4,它仍然值原来的值100。如果我去3班,它仍然是相同的值。当我现在想回去时,我在活动2上着陆,活动2是空的。但当我在3或4中再次使用时,值现在更新为90。如何直接做到这一点 处理这些变量的最佳方法是什么?我当然还有10个其他价值观受到这个问题的影响 这是第3类中的代码,我定义了变量,等于第4类Java 将变量传递给其他类,java,android,android-studio,Java,Android,Android Studio,我目前的问题是,我不知道如何管理我的变量 目前我有5项活动。因此有5个Java类。 从第3类中,总是可以看到变量 前两个类仅提供按钮。在第三个类中,我定义了变量public static int Money=100。在第四节课上,我来到了第五节课,在第五节课上,变量被更改为10。通过实施更新,我可以通过单击第5类中的按钮(例如90 money)来更改变量 这是我的问题。如果我现在使用home按钮右侧的back按钮进入活动4,它仍然值原来的值100。如果我去3班,它仍然是相同的值。当我现在想回去时
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_class3);
//Header
TextView MoneyView = findViewById(R.id.outputmoney);
MoneyView.setText(String.valueOf(class3.money));......}
第4类和第5类中的声明
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_class4);
TextView moneyView = findViewById(R.id.outputmoney);
MoneyView.setText(String.valueOf(class3.money));
public class MyApp extends Application() {
public static int money = 100;
// any other values you want in here
}
并确保更新清单以使用此新类
<application
android:name="com.example.MyApp"
//...
>
此外,如果打开一个活动,修改该值,然后返回到上一个活动,它将不会反映更新后的值。要将其更新为更新后的值,您需要将逻辑移动到onResume
检查这个问题。希望它能解决你的问题。您肯定应该将Java中的变量字段设置为私有,并使用getter和setter。我不确定你的问题是否来自于此,但这确实是管理你的领域的好方法。您将能够轻松处理对字段的访问。
MoneyView.setText(String.valueOf(MyApp.money));
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_class3);
}
protected void onResume() {
//Header
TextView MoneyView = findViewById(R.id.outputmoney);
MoneyView.setText(String.valueOf(MyApp.money));
}