0

我的应用程序当前直接启动到布局中,并且 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): 致命异常: main 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): at 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): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737 ) 08-31 14:15:47.120: E/AndroidRuntime(12326): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 08-31 14:15:47.120: E/AndroidRuntime(12326 ):在 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 ): 在 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)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 )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 )

我想在这里强调一点,改变如此微小的东西不应该导致如此严重的错误,而且无论我从这种方法中得到什么,我都会收到错误。

4

0 回答 0