2017-03-02 47 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 
    } 
    }