【问题标题】:Failure delivering result ResultInfo{who=null, request=200, result=-1, data=Intent传递结果失败 ResultInfo{who=null, request=200, result=-1, data=Intent
【发布时间】:2012-03-10 19:09:20
【问题描述】:

我想从主要活动中调用我的子活动。在此期间,我需要将linkedhashSet 传递给它。 在子活动中,我想对这个哈希集执行一些操作, 并单击子活动中对话框的“确定”按钮,我想将此新的linkedhashset返回给父级。

目前我在发送原始哈希集时在父活动中使用以下代码:

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 ");

它工作正常。 我可以在子活动中收到这个哈希集,我可以对其进行操作。

我正在尝试使用以下代码发送新的哈希集:

 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();
       }

这是正确的。

在父活动中,我正在使用以下代码接收此哈希集...在记录“获取捆绑包”后此代码有问题...

@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; 
        } 
      } 
    }

我尝试了很多东西,搜索了很长时间以使其正常工作。 但不能成功:( 任何人都可以看看这段代码并帮助我吗??

以下是 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 跟踪。谢谢
  • 你好,你为什么使用putSerializable??
  • 我只想将此链接哈希集移动到子活动并将其带回。所以使用可序列化。这可能是上述异常的原因吗?

标签: android android-activity


【解决方案1】:

解决方案:

在 SurfaceChanged 期间绘制位图,使用标志是否加载图像。

显然,在 MediaStore 活动返回选择之后,SurfaceView 还没有准备好被绘制

来自: https://stackoverflow.com/a/4891558/4339857

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多