我正在开展第二项活动:
Intent intent = new Intent(getApplicationContext(),MessageBox.class);
startActivityForResult(intent,5);
然后在第二个我有:
Intent intent2 = new Intent();
setResult(RESULT_OK,intent2);
finish();
当它再次出现在我的第一项活动中时:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode==5)
{
if(resultCode==RESULT_OK)
{
// Toast...
}
}
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
}
问题是我没有得到Toast所以它不起作用。当我正在做setResult(RESULT_OK)时它的工作正确,所以问题是setResult(int,intent),但我真的不知道发生了什么。
如果它在我的程序中帮助所有发生在第二和第三个活动中,但它并不重要。
答案 0 :(得分:0)
正如我在评论中提到的,我的工作代码如下。 活动1 - 按钮点击
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(),NextActivity.class);
startActivityForResult(intent,5);
}
});
活动1 - OnActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==5) {
if(resultCode==RESULT_OK) {
Toast.makeText(getApplicationContext(), "working", Toast.LENGTH_SHORT).show();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
活动2 - OnBackPressed
@Override
public void onBackPressed() {
Intent intent2 = new Intent();
setResult(RESULT_OK, intent2);
finish();
super.onBackPressed();
}
希望这可以帮助你。
答案 1 :(得分:-1)
尝试在开头调用super.onActivityResult(requestCode,resultCode,data)。