Java 如何从另一个文件调用变量?
我想将一个变量从一个类调用到另一个类(在我的示例中,从WifiActivity到WifiBroadcastReceiver)。我使用一种方法来解决这个问题,这是我的代码: WifiActivity.java:Java 如何从另一个文件调用变量?,java,android,Java,Android,我想将一个变量从一个类调用到另一个类(在我的示例中,从WifiActivity到WifiBroadcastReceiver)。我使用一种方法来解决这个问题,这是我的代码: WifiActivity.java: public class WifiActivity extends Activity implements OnClickListener { [...] public boolean getLocalizationState() { return lo
public class WifiActivity extends Activity implements OnClickListener {
[...]
public boolean getLocalizationState() {
return localizationPhase; //localizationPhase is defined as boolean
}
[...]
}
WifiBroadcastReceiver.java:
public class WifiBroadcastReceiver extends BroadcastReceiver {
private WifiActivity wifiActivity; //
[...]
private boolean localizationState;
@Override
public void onReceive(Context context, Intent intent) {
[...]
while(position<=numberdisplay-1){ // While we have not read all the AP RSSI average
localizationState=wifiActivity.getLocalizationState(); //The problem is here!!!
if(sampleposition[position]!=0 && localizationState==true){
[...]
}
[...]
}
[...]
}
}
@杰森C:当你谈到初始化时,你会考虑这个问题吗?很抱歉我缺乏知识…在使用Android时,你真的不需要做这样的事情:
private WifiActivity wifiActivity;
尝试使用额外功能来在组件之间传递信息。是否将本地化阶段设置为静态?如何初始化
wifiActivity
?在哪里设置本地化阶段
?问题是这个变量被定义为boolean
而不是boolean
,它将被设置为默认的false
,这与boolean
对象不同,后者默认为null
。我不知道您在什么时候设置本地化阶段
,但您可能在设置之前查找该值。@lukronos不,不要将其设置为静态。它可能“起作用”,但原因是错误的。您需要向我们展示如何初始化wifiActivity
。如果您可以编写一个完全独立的小型测试程序来显示这种行为,这也会很有帮助。还要验证您是否确实在调试器中观察到了正确的位置。@lukronos首先,您应该在问题的注释部分添加注释,以便其他人注意到。我只是碰巧注意到你在帖子中的评论。第二,回答您:不,您在哪里设置wifiActivity
的值?wifiActivity=…
在哪里?你说额外的是什么意思?如果可能的话,你能给我举个例子吗?对不起,我是一个初学者在编码:s。您可能应该查看android开发者页面上的intent文档,并学习一些教程。这是一个很好的观点,但它也没有解决有关getLocalizationState()的返回值的OPs问题,更适合作为对问题的评论。@elevine对手头的问题进行分析,并结合您对更好设计的建议,将是一个建设性的回应。目前,它是“根”的任意定义的“根”-“根”的原因是OP试图首先编写应用程序(如果他不这样做,问题就会解决。):)@JasonC同意组合是最好的答案。我今天觉得有点懒,没有尽可能彻底地努力:)
private WifiActivity wifiActivity;