【发布时间】:2019-07-26 21:12:03
【问题描述】:
所以这似乎是一个奇怪的问题,但我对 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() 方法之前 declare 变量,但是例如如果我想在 onResume() 方法中更新这些变量的值,那很好,但是如果我想用其他方法访问那个变量,比如onClick,我做不到,必须重新定义变量。
我在这里做错了吗?从本质上讲,我的问题归结为:我想为 one 活动(不是在所有活动中)有一个实例变量,我可以在活动中的任何地方访问和修改它。
编辑:似乎认为在 onResume 方法与 int 之类的东西一起工作之前初始化和声明变量,但我只能 declare 按钮和 Textviews 之类的东西 - 有什么办法可以解决这个问题?
谢谢
【问题讨论】:
标签: java android android-studio variables instance-variables