android返回活动额外返回null

问题描述:

当试图将数据从一个活动传递到另一个活动时,它在一个方向上正常工作父>>子。但返回路径的孩子>>父母崩溃我认为与空指针异常。 现在我可以很容易地捕获null,但无法确定我传递的int在哪里丢失?android返回活动额外返回null

你如何进行调试这种类型的问题 - 任何见解等等

行发生崩溃:INT =的binVal extras.getInt(“的binVal”);

// when leaving the child activity 
OnClickListener mReturnListener = new OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = getIntent(); 
     intent.putExtra("binVal", (int)binVal); 
     setResult(Activity.RESULT_OK, intent); 
     finish(); 
    } 
}; 



//on return to the parent actvity 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
    case SET_BIN_TEMP: 
     if (resultCode == RESULT_OK) {   
      Bundle extras = getIntent().getExtras(); 
      if (extras == null) 
       Toast.makeText(PilotActivity.this, "null returned!", Toast.LENGTH_SHORT).show(); 
      else { 
       int binVal = extras.getInt("binVal"); 
       text.setText(Integer.toString(binVal)); 
      } 
     } 
     return; 
    } 
} 

我曾在过去的这个问题,不得不做一些像下面的代码示例:

OnClickListener mReturnListener = new OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = getIntent(); 
     intent.putExtra("binVal", (int)binVal); 

     if (getParent() == null) 
      YourActivity.this.setResult(Activity.RESULT_OK, intent); 
     else 
      YourActivity.this.getParent().setResult(Activity.RESULT_OK, intent); 

     finish(); 
    } 
}; 

看看你onActivityResult(...)参数...

protected void onActivityResult(int requestCode, int resultCode, Intent data) 

当已从startActivityForResult开始的活动返回,返回的Intent是参数data

在你的“父母”活动使用的是其getIntent()方法,该方法返回Intent(如有的话)最初开始的活动。

而不是...

Bundle extras = getIntent().getExtras(); 

...你应该使用...

Bundle extras = data.getExtras(); 
+0

优秀,感谢你的洞察。更改为data.getExtras()解决了它。 – Fry