我的应用程序当前直接引导到布局中,而onCreate方法用于控制该视图,例如响应按钮按下等。但是我希望转到不同的初始布局。我最初只是将所有原始控件功能移动到一个新方法,并更改setContentView(R.layout.main);
以匹配新视图,但这会导致崩溃。经过一些摆弄后,我发现无论我在这种方法中改变什么,我都会崩溃,即使在评论小方法调用时也是如此。
这是我的onCreate方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent checkTTSIntent = new Intent();
checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE);
final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(new ArrayAdapter<String>(actionBar.getThemedContext(),
android.R.layout.simple_list_item_1,
android.R.id.text1, new String[] {
getString(R.string.lanc),
getString(R.string.lanb),
getString(R.string.lana),
}), this);
final Intent intent = new Intent("com.google.zxing.client.android.SCAN");
latituteField = (TextView) findViewById(R.id.latitude);
longitudeField = (TextView) findViewById(R.id.longtitude);
orgText = (TextView) findViewById(R.id.orgText);
accpointnameText = (TextView) findViewById(R.id.accpointnameText);
floorText = (TextView) findViewById(R.id.floorText);
setlocation();
installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installTTSIntent);
Button save = (Button) findViewById(R.id.save);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("attempting get from input fields");
accpointText = (EditText) findViewById(R.id.accpointText);
passwordText = (EditText) findViewById(R.id.passwordText);
IDin = accpointText.getText().toString();
System.out.println(IDin);
Passwordin = passwordText.getText().toString();
System.out.println(Passwordin);
System.out.println("so far");
JSONstate = false;
new JSONDownloader().execute("https://apps.taskpixie.com/arSettings/?id="+IDin+"&password="+Passwordin+"");
}
});
Button cancel = (Button) findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivityForResult(intent, 0);
}
});
}
为什么我的应用程序崩溃无论我删除了什么?如何更改初始布局?
如果您需要更多数据我可以提供,请提前感谢。
例如,注释掉setlocation();
会导致日志猫吐出
08-31 14:15:47.120:E / AndroidRuntime(12326):致命异常:主要 08-31 14:15:47.120:E / AndroidRuntime(12326):java.lang.RuntimeException:无法恢复活动{com.example.bilisattendancerecorder / com.example.bilisattendancerecorder.Main}:java.lang.NullPointerException 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.ActivityThread.performResumeActivity(ActivityThread.java:2790) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2819) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2266) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.ActivityThread.access $ 600(ActivityThread.java:141) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1256) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.os.Handler.dispatchMessage(Handler.java:99) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.os.Looper.loop(Looper.java:137) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.ActivityThread.main(ActivityThread.java:5103) 08-31 14:15:47.120:E / AndroidRuntime(12326):at java.lang.reflect.Method.invokeNative(Native Method) 08-31 14:15:47.120:E / AndroidRuntime(12326):at java.lang.reflect.Method.invoke(Method.java:525) 08-31 14:15:47.120:E / AndroidRuntime(12326):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737) 08-31 14:15:47.120:E / AndroidRuntime(12326):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 08-31 14:15:47.120:E / AndroidRuntime(12326):at dalvik.system.NativeStart.main(Native Method) 08-31 14:15:47.120:E / AndroidRuntime(12326):引起:java.lang.NullPointerException 08-31 14:15:47.120:E / AndroidRuntime(12326):at com.example.bilisattendancerecorder.Main.onResume(Main.java:299) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.Activity.performResume(Activity.java:5211) 08-31 14:15:47.120:E / AndroidRuntime(12326):在android.app.ActivityThread.performResumeActivity(ActivityThread.java:2780)
我想在此强调,改变一些如此微小的东西不应该导致如此严重的错误,并且无论我从这种方法中拿走什么,我都会收到错误。