我想将一个变量从一个类调用到另一个变量(在我的例子中,从WifiActivity到WifiBroadcastReceiver)。我使用一种方法,这是我的代码:
WifiActivity.java:
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){
[...]
}
[...]
}
[...]
}
}
当我使用wifiActivity.getLocalizationState()
时,它返回'false',但实际上当我查看调试模式时它是'true':variables-&gt; context-&gt; localizationPhase ='true'
我的印象是wifiActivity.getLocalizationState()
只是阅读变量的定义,而不是变化。对于我调用的其他方法,我遇到了同样的问题,它没有返回调试窗口所做的相同的事情。
你知道可能是什么问题吗?
抱歉我的英文......
编辑:这是WifiActivity类的开头:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wifi);
@Jason C:当你谈到初始化时,你会想到这个吗?抱歉我缺乏知识......
答案 0 :(得分:0)
使用Android时,你真的不需要做这样的事情:
private WifiActivity wifiActivity;
尝试在Intent中使用额外内容来代替组件之间传递信息。