2013-04-09 91 views
3

这里有很多问题与我有完全相同的问题,我已经看了一百万,现在尝试了两三个小时不同的事情,但我仍然无法使它工作。onActivityResult不叫

子活动:

Intent resultIntent = new Intent(myColorPicker.this, WidgetConfig.class); 
resultIntent.putExtra("key", appwidget_notecolor); 
setResult(RESULT_OK, resultIntent); 
finish(); 

父活动:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    // Toast does not show 
    Toast.makeText(getApplicationContext(), "onActivityResult fired", Toast.LENGTH_SHORT).show(); 

    if (resultCode == RESULT_OK) { 
     // Toast does not show 
     Toast.makeText(getApplicationContext(), "Result Recieved", Toast.LENGTH_SHORT).show(); 
    } 
} 

我从父活动启动子活性这样的:

Intent myColorPickerIntent = new Intent(WidgetConfig.this, myColorPicker.class); 
myColorPickerIntent.putExtra("appwidget_notecolor", appwidget_notecolor); 
WidgetConfig.this.startActivity(myColorPickerIntent); 
+4

您是否使用'startActivityForResult()'或'startActivity()'来启动子活动? – 2013-04-09 22:53:28

+0

@ Eng.Fouad这是问题,用startActivityForResult()替换startActivity(),确实解决了它。谢谢 – Jakob 2013-04-09 23:07:18

+0

使用'startActivityForResult()'的好的细节:http://stackoverflow.com/a/10407371/2162226 – gnB 2016-11-30 05:26:20

回答

12

当然你不会得到结果,你调用startActivity()而不是startActivityForResult()。

+0

谢谢!就是这样,当我允许时,我会接受你的回答。谢谢 – Jakob 2013-04-09 23:00:30

5

你似乎并不被调用startActivityForResult ()创建了Intent之后。

3

你是否将意图传递给startActivityForResult()方法?