因此,这似乎是一个奇怪的问题,但是关于Android Studio我有些不了解(我刚刚开始使用它)。
如果要在活动中创建变量,然后在活动中的不同方法中访问变量,我应该能够做到,对吗?
例如,考虑以下代码:
public class bakers extends AppCompatActivity {
private Bunz bunz;
BigDecimal baker1Cost = BigDecimal.valueOf(20); //cost of baker1
BigDecimal baker1Bunz = BigDecimal.valueOf(.1); //number of bunz produced by each baker1
TextView baker1CostText = (TextView) findViewById(R.id.baker1Cost);
TextView baker1Owned = (TextView) findViewById(R.id.baker1Owned);
TextView baker1BunzText = (TextView) findViewById(R.id.baker1Bunz);
TextView bunzCount = (TextView) findViewById(R.id.bunzCount3);
TextView moneyCount = (TextView) findViewById(R.id.moneyCount3);
@Override
protected void onResume() {
super.onResume();
setContentView(R.layout.activity_bakers);
bunz = Bunz.getInstance();
bunzCount.setText("Bunz: " + bunz.getBunz());
moneyCount.setText("Money: " + bunz.getMoney());
baker1BunzText.setText(baker1Bunz.toPlainString());
baker1CostText.setText("Cost: " + (baker1Cost));
baker1Owned.setText("Owned: " + bunz.getBaker1());
}
...
在这段代码中,我尝试在onResume()方法之前声明并初始化一堆变量,但这不起作用。我发现我可以在onResume()方法之前声明变量,但是例如,如果我想在onResume()方法中更新这些变量的值,那很好,但是如果我想在另一个方法中访问该变量方法,例如onClick,我无法做到这一点,必须重新定义变量。
我在这里做错什么了吗?从本质上讲,我的问题可以归结为:我想为一个活动(而不是在所有活动中)拥有一个实例变量,我可以在该活动中的任何地方访问和修改该变量。
编辑:好像在onResume方法与ints之类的东西一起工作之前初始化和声明变量,但是我只能声明Buttons和Textviews之类的东西-有什么办法可以解决这个问题吗?
谢谢
最佳答案
为什么不在Activity的onCreate
方法中初始化变量? 您可以了解活动生命周期。