在我的应用程序中,我有一个按钮可以打开和关闭蓝牙,我注意到当我将切换按钮定义移动到类的顶部并且onResume();
应用程序崩溃时出现 nullpointerexception,这是代码的简短版本崩溃:
public class MainActivity extends Activity {
static final BluetoothAdapter myBluetooth = BluetoothAdapter.getDefaultAdapter();
final ToggleButton tglbtn = (ToggleButton)findViewById(R.id.ToggleButton01);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(myBluetooth == null){
setContentView(R.layout.notsupported);
}
else{
setContentView(R.layout.supported);
}
}
@Override
public void onResume()
{
super.onResume();
tglbtn.setChecked(myBluetooth.isEnabled());
tglbtn.setOnClickListener(new OnClickListener(){
public void onClick(View v) { .......}
}
}
}
当我final ToggleButton tglbtn = (ToggleButton)findViewById(R.id.ToggleButton01);
搬回onResume()
时,应用程序运行良好并且不会崩溃,有人可以解释为什么会发生这种情况吗?