編集:呼び出されたアクティビティオブジェクトにstartActivityForResult
を呼び出すのではなく、呼び出し元のコンテキストから呼び出します。startActivityForResultを試行中にNullPointerExceptionが発生しました。
これは私のコード、最後の行には例外です:
107 Intent intent = new Intent(CallingActivity.this, CalledActivity.class);
108 CalledActivity calledActivity = new CalledActivity();
109 calledActivity.startActivityForResult(intent, CALLED_ACTIVITY_CODE);
インサイドCallingActivity:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i(SR.tag,"req=" + requestCode + " res=" + resultCode); //Never getting here
}
マニフェストファイルの抜粋:
<activity android:name=".ui.CallingActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ui.CalledActivity"></activity>
が例外:
01-14 11:30:14.850: ERROR/AndroidRuntime(1036): FATAL EXCEPTION: main
01-14 11:30:14.850: ERROR/AndroidRuntime(1036): java.lang.NullPointerException
01-14 11:30:14.850: ERROR/AndroidRuntime(1036): at android.app.Activity.startActivityForResult(Activity.java:2833)
01-14 11:30:14.850: ERROR/AndroidRuntime(1036): at com.litvin.app.ui.CallingActivity.onSharedPreferenceChanged(CallingActivity.java:109 )
...
ホームフィルタとランチャインテントフィルタを.ui.CalledActivity
に移動すると、正常に動作します。アイコンを押すと、CalledActivityが開始されます。
私はここで多くの同様の答えを見てきましたが、誰も私のために働いていませんでした。
だから、血まみれの、シンプルでありながら多くの時間無駄に..感謝:) –
あなたのコードを実行すること
//のための任意のオブジェクトを作成する必要はありません"メソッドstartActivityForResult(Intent、int)は、インテントタイプ" –