Java 如何在一个活动中创建实例变量?

Java 如何在一个活动中创建实例变量?,java,android,android-studio,variables,instance-variables,Java,Android,Android Studio,Variables,Instance Variables,所以这似乎是一个奇怪的问题,但我对Android Studio有些不了解(我刚刚开始使用它) 如果我想在一个活动中创建一个变量,然后在我的活动中的不同方法中访问它,我应该能够做到,对吗? 例如,考虑下面的代码: 公共类面包师扩展AppCompative活动{ 私人床铺; BigDecimal baker1Cost=BigDecimal.valueOf(20);//baker1的成本 BigDecimal baker1Bunz=BigDecimal.valueOf(.1);//每个面包机生产的面包

所以这似乎是一个奇怪的问题,但我对Android Studio有些不了解(我刚刚开始使用它)

如果我想在一个活动中创建一个变量,然后在我的活动中的不同方法中访问它,我应该能够做到,对吗? 例如,考虑下面的代码:

公共类面包师扩展AppCompative活动{
私人床铺;
BigDecimal baker1Cost=BigDecimal.valueOf(20);//baker1的成本
BigDecimal baker1Bunz=BigDecimal.valueOf(.1);//每个面包机生产的面包圈数1
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);
@凌驾
受保护的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());
setText(“成本:”+(baker1Cost));
baker1Owned.setText(“Owned:+bunz.getBaker1());
}
...
在这段代码中,我尝试在onResume()方法之前声明和初始化一组变量,但这不起作用。我发现我可以在onResume()方法之前声明变量,但例如,如果我想更新onResume()中这些变量的值方法,这很好,但如果我想在另一个方法(如onClick)中访问该变量,我不能这样做,必须重新定义变量

这里有什么我做错了吗?本质上,我的问题归结为:我想要一个活动的实例变量(不是所有活动),我可以在活动中的任何地方访问和修改它

编辑:在onResume方法处理int之类的东西之前,我似乎认为应该初始化和声明变量,但我只能声明按钮和文本视图之类的东西——有什么办法可以解决这个问题吗


谢谢

为什么不在活动的
onCreate
方法中初始化变量?您可以了解活动生命周期。

如果我在那里初始化变量,我是否可以在活动的其他方法中访问它们?编辑:因此,根据该文档,在onCreate中初始化变量方法将创建实例变量,但这是否也适用于onResume?您在回调函数之外使用了方法
findViewById
,该方法只有在设置活动的布局后才起作用(请参见文档中的
onCreate
方法中的
setContentView()
),您应该使用
setContentView()
在onCreate内部,因为它是在onResume之前调用的。之后,您可以使用
findViewById