0

アクティビティ グループからアクティビティを開始しようとしています。以下は私が使用するコードです:

public void replaceContentView() {
    Intent i = new Intent(SummaryCostScreen.this,PermissionsScreen.class);
    View view = getLocalActivityManager().startActivity("activity9",i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
    this.setContentView(view);
    } 

次のように nullpointer 例外が発生します。

05-15 09:49:23.367: D/AndroidRuntime(3872): Shutting down VM
05-15 09:49:23.367: W/dalvikvm(3872): threadid=1: thread exiting with uncaught exception (group=0x40b1a1f8)
05-15 09:49:23.382: E/AndroidRuntime(3872): FATAL EXCEPTION: main
05-15 09:49:23.382: E/AndroidRuntime(3872): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nykkos.personalize/com.nykkos.personalize.launcher.screens.PermissionsScreen}: java.lang.NullPointerException
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1964)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.app.ActivityThread.startActivityNow(ActivityThread.java:1799)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at com.nykkos.personalize.launcher.screens.SummaryCostScreen.replaceContentView(SummaryCostScreen.java:255)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at com.nykkos.personalize.launcher.screens.SummaryCostScreen.onClick(SummaryCostScreen.java:116)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.view.View.performClick(View.java:3480)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.view.View$PerformClick.run(View.java:13993)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.os.Handler.handleCallback(Handler.java:605)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.os.Looper.loop(Looper.java:137)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.app.ActivityThread.main(ActivityThread.java:4368)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at java.lang.reflect.Method.invokeNative(Native Method)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at java.lang.reflect.Method.invoke(Method.java:511)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at dalvik.system.NativeStart.main(Native Method)
05-15 09:49:23.382: E/AndroidRuntime(3872): Caused by: java.lang.NullPointerException
05-15 09:49:23.382: E/AndroidRuntime(3872):     at com.nykkos.personalize.launcher.screens.PermissionsScreen.onCreate(PermissionsScreen.java:48)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.app.Activity.performCreate(Activity.java:4465)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
05-15 09:49:23.382: E/AndroidRuntime(3872):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1928)
05-15 09:49:23.382: E/AndroidRuntime(3872):     ... 16 more

Nullpointer がスローされます

getLocalActivityManager().startActivity("activity9",i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();

この nullpointer の理由は何でしょうか。明らかな理由はわかりません。

どんな助けでも大歓迎です。

4

3 に答える 3

1

より良い方法であるフラグメントを使用してください

このクラスは、API レベル 13 で廃止されました。代わりに、新しい Fragment および FragmentManager API を使用してください。これらは、Android 互換性パッケージを通じて古いプラットフォームでも利用できます。

http://developer.android.com/reference/android/app/ActivityGroup.html

于 2013-05-15T10:32:44.333 に答える