メインアクティビティから子アクティビティを呼び出すとします。この間、私はそれにリンクされたハッシュセットを渡す必要があります。 子アクティビティで、このハッシュセットに対して何らかの操作を実行したい場合は、 子アクティビティのダイアログの[OK]ボタンをクリックすると、この新しいリンク先ハッシュセットをpareentに戻したいと考えています。元HashSetの送信中に結果の配信に失敗しました。ResultInfo {who = null、request = 200、result = -1、data = Intent
現在、私は親アクティビティに次のコードを使用しています:
Bundle bundle = new Bundle();
bundle.putSerializable("keyThumbNails", thumbNailsLnkdhs);
Intent AndroidCustomGalleryActivityIntent = new Intent(parentActivity.this, childActivity.class);
childActivity.putExtras(bundle);
startActivityForResult(childActivity,200);
Log.d(LOGGER, "ChildyActivityIntent called ");
それが正常に動作しています。 私は子アクティビティでこのハッシュセットを受け取ることができます。私はそれを操作できます。
私は、次のコードを使用して、新しいHashSetのを送信しようとしていますが:
new AlertDialog.Builder(this)
.setMessage(mymessage)
.setTitle(title)
.setNeutralButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
Log.d(LOGGER, "AlertDialog neutral btn");
// // the button was clicked
Bundle bundleToSend = new Bundle();
bundleToSend.putSerializable("keyThumbNailsOfSelectedImages", SelectedThumbnailsPathsLnkdhs);
Intent SearchWebForWallPaperActivityIntent = new Intent(AndroidCustomGalleryActivity.this, SearchWebForWallPaperActivity.class);
SearchWebForWallPaperActivityIntent.putExtra("RESULT",bundleToSend);
setResult(Activity.RESULT_OK, SearchWebForWallPaperActivityIntent);
finish();
}
})
.show();
}
これが適切にshwonされます。私は長い間、物事の多くは、検索を試してみました
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (200) : {
if (resultCode == Activity.RESULT_OK) {
Log.d(LOGGER, "inside RESULT OK");
//Bundle revievedBundle = this.getIntent().getExtras();
Bundle recievedBundle = data.getExtras();
Log.d(LOGGER, "got bundle");
// if(recievedBundle.isEmpty()){
//Log.d(LOGGER, "its empty");
//}
SelectedThumbnailsPathsLnkdhs = (LinkedHashSet<String>) recievedBundle.getSerializable("keyThumbNailsOfSelectedImages");
Log.d(LOGGER, "ThumbNailsLnkdhs size in SearchWebForWallPaperActivity intent: "+SelectedThumbnailsPathsLnkdhs.size());
Toast.makeText(getApplicationContext(),
"ThumbNailsLnkdhs size in old intent: "+SelectedThumbnailsPathsLnkdhs.size(), Toast.LENGTH_LONG).show();
}
break;
}
}
}
親アクティビティで
私はこのHashSetのを受け取るためのコードを、以下の使用しています...このコードは、ログに記録された「バンドルました」の後に問題を抱えています...それを働かせてください。 しかし、成功:( を誰もがこのコードを見て、私を助けることができるcouldntの??
に続いては、logcatの痕跡である:
03-11 00:24:20.310: D/ADITYA(3959): inside RESULT OK
03-11 00:24:20.310: D/ADITYA(3959): got bundle
03-11 00:24:20.341: D/AndroidRuntime(3959): Shutting down VM
03-11 00:24:20.341: W/dalvikvm(3959): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
03-11 00:24:20.420: E/AndroidRuntime(3959): FATAL EXCEPTION: main
03-11 00:24:20.420: E/AndroidRuntime(3959): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=200, result=1, data=Intent { cmp=com.practice.wallpaper/.SearchWebForWallPaperActivity (has extras) }} to activity {com.practice.wallpaper/com.practice.wallpaper.SearchWebForWallPaperActivity}: java.lang.NullPointerException
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.app.ActivityThread.deliverResults(ActivityThread.java:3515)
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.app.ActivityThread.access$2800(ActivityThread.java:125)
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.os.Handler.dispatchMessage(Handler.java:99)
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.os.Looper.loop(Looper.java:123)
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.app.ActivityThread.main(ActivityThread.java:4627)
03-11 00:24:20.420: E/AndroidRuntime(3959): at java.lang.reflect.Method.invokeNative(Native Method)
03-11 00:24:20.420: E/AndroidRuntime(3959): at java.lang.reflect.Method.invoke(Method.java:521)
03-11 00:24:20.420: E/AndroidRuntime(3959): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-11 00:24:20.420: E/AndroidRuntime(3959): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-11 00:24:20.420: E/AndroidRuntime(3959): at dalvik.system.NativeStart.main(Native Method)
03-11 00:24:20.420: E/AndroidRuntime(3959): Caused by: java.lang.NullPointerException
03-11 00:24:20.420: E/AndroidRuntime(3959): at com.practice.wallpaper.SearchWebForWallPaperActivity.onActivityResult(myActivity.java:198)
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.app.Activity.dispatchActivityResult(Activity.java:3890)
03-11 00:24:20.420: E/AndroidRuntime(3959): at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
03-11 00:24:20.420: E/AndroidRuntime(3959): ... 11 more
表示するスタックトレースが –
は私の質問、コメントを追加しましたlogcatトレースを編集してください。ありがとうございます。 – adityag
こんにちは、なぜあなたは 'putSerializable'を使用していますか? –