ユーザーに音声ファイルを選択させ、その音声ファイルのパスを保存させようとしています。ACTION_GET_CONTENT インテントを使用してそうしているので、ユーザーはアプリケーションを選択してファイルを選択できます。ただし、なんらかの理由で、エラー メッセージに示されているように、 onActivityResultメソッドでIntent データがnullとして返されます。Logcat エラー メッセージと関連するコードを以下に示します。どんな助けでも大歓迎です。
主な編集:- このエラーは、戻るボタンまたはキャンセルを押したときにのみ発生します。音楽ファイルの選択は、実際には問題なく機能します。申し訳ありません。それにもかかわらず、エラーは解決しません。
LogCat エラー:-
06-26 16:36:25.238: E/AndroidRuntime(24759): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {com.packagename.appname.activityname}: java.lang.NullPointerException
onCreate() で呼び出されるメソッドに配置されたチューザー アクティビティへの呼び出し:-
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setAction(Intent.ACTION_PICK);
intent.setType("audio/*");
startActivityForResult(intent, audioreminder);
onActivityResult() メソッド:-
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
SharedPreferences flags = this.getSharedPreferences(
"screen_on_flags", MODE_WORLD_READABLE);
SharedPreferences.Editor editor = flags.edit();
String FilePath = data.getData().getPath();
switch (requestCode) {
case audioreminder: {
if (resultCode == RESULT_OK) {
editor.putString("audioreminderpath", FilePath);
editor.commit();
} else if (resultCode == RESULT_CANCELED){
CheckBoxPreference other_audioreminder = (CheckBoxPreference) findPreference("other_audioreminder");
other_audioreminder.setChecked(false);
}
break;
}
}
}