我有onActivityResult的問題,無論我在做什麼我無法得到resultCode的權利。onActivityResult - resultCode始終爲0
我知道有類似的問題,但最後他們並沒有幫助我,我不能修復它
MainActivity:方法,該方法將打開新的活動Popup.class
public void openShopView(){
Intent intent = new Intent(this, Popup.class);
Bundle b = new Bundle();
b.putString("which", "ShopMain");
intent.putExtras(b);
startActivityForResult(intent, 1);
}
次活動:方法,該方法將打開另一個活動Popup.class只是不同的佈局
shop_c1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getIntent());
Bundle b = new Bundle();
b.putString("which", "ShopBuildings");
intent.putExtras(b);
startActivity(intent);
finish();
}
});
第三活動:和有方法,其應的setResult和靠近活性
building2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("LOG_NEW: ", "" + getCurrentBuildingTable(1) + ", " + checkSlotTable(1));
if(getCurrentBuildingTable(1) && checkSlotTable(1) == -1) {
Intent returnIntent = getIntent();
returnIntent.putExtra("result", 1);
setResult(RESULT_OK, returnIntent);
finish();
}else if (checkSlotTable(1) == -1){
Log.i("LOG_NEW: ", "Building already exist");
}
else{
Log.i("LOG_NEW: ", "Not enough resources");
}
}
});
在末端有onActivityResult()從MainActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i("LOG_RES: ", "Checking.. " + requestCode + ", " + resultCode);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
String result = data.getStringExtra("result");
Log.i("LOG_RES: ", result);
}
}
}
無論I」 m我無法啓動if(resultCode == RESULT_OK) loop和resultCode始終爲0 ..
感謝您的幫助
'setResult'必須在**第二個活動叫** ,因爲第二個活動的意圖已在'startActivityForResult'中傳遞 – Saurabh
正如@Saurabh所說,結果僅從使用startActivityForResult啓動的活動中接收。 –
@Saurabk 感謝您的回答,但是有什麼辦法可以發送第三個活動的結果,或者我應該將結果發送到第二個活動並從那裏到主要活動? – fairon201