편집 : 호출 된 활동 객체에서 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) 메서드는 Intent 유형에 대해 정의되지 않았습니다." –