因此,这似乎是一个奇怪的问题,但是关于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方法中初始化变量? 您可以了解活动生命周期。

09-10 11:33
查看更多