2017-03-02 51 views
-1

我开始一个活动与startActivityForResult这样安卓:onActivityResult是没有得到所谓的不同结果代码

@Override 
public void onEmptyViewClicked(Calendar time) { 
    Bundle bundle = new Bundle(); 
    bundle.putSerializable("time",time); 
    bundle.putInt("fragmentId",1); 

    Intent intent = new Intent(this,AddEventActivity.class); 
    intent.putExtras(bundle); 
    startActivityForResult(intent,1); 
} 

和AddEventActivity我添加取决于片段片段id.The第一片段添加事件和第二片段删除events.onAddEvent和onDeleteEvent我的setResult像这样

@Override 
public void onAddEventClicked(Bundle bundle) { 
    Intent intent = new Intent(this,MainActivity.class); 
    intent.putExtras(bundle); 
    setResult(1,intent); 
    finish(); 
} 

@Override 
public void eventDelete(Events event) { 
    Bundle bundle = new Bundle(); 
    bundle.putSerializable("deleteEvent",event); 

    Intent newIntent = new Intent(this,MainActivity.class); 
    newIntent.putExtras(bundle); 
    setResult(2,newIntent); 
    finish(); 
} 

OnActivityResult代码相应的数据是这样的

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(resultCode == 1 && data != null){ 
     if(requestCode == 1){ 

     } 
    }else if(resultCode == 2){ 

    } 
} 
} 

现在onActivityResult正在调用onAdding事件,但不是正在删除event.eventDelete方法正在调用,但它不会触发onActivityResult.What可能是问题?谢谢。

修订
我把调试的第一行onActivityResult但调试器不会停在那里。

+0

你确定'eventDelete'被称为在所有? – pskink

+0

是的,我已经与调试器检查.. –

+0

发布您的被称为活动代码('AddEventActivity') – pskink

回答

2
startActivityForResult(intent,1); 
这里

1是你requestCode

setResult(1,intent); 

这里1是你resultCode

要设置相同resultcode两个事件

改变你的onActivityResult

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode == 1) { //add event 
     if (requestCode == 1) { 
      if (data != null) { 

       if (data.getExtras().containsKey("deleteEvent")) { 

       } else { 
       } 
      } 
     } 
    } else if (resultCode == 2) { //delete event 
     //write code 
    } 
} 
+0

感谢您指出... –

+0

nope它不工作。我在onActivityResult的第一行放置一个调试,但调试器doesn; t停止那里.. –

+0

你叫它像这样:'setResult(2,newIntent);'in你的删除事件? – rafsanahmad007

-1

你应该添加RESULT_OK和验证此resultCode为:

Intent returnIntent = new Intent(); 
returnIntent.putExtra("returndata"); 
setResult(Activity.RESULT_OK, returnIntent); 
finish(); 

在此之后,u需要添加验证您的onActivityResult方法...

 if(requestCode == CODE_REQUEST){ 
    if(resultCode == Activity.RESULT_OK){ 
     //do something here 
     }{ 
     //catch cancel result 
    } 
    }