SetResult(int,intent)不起作用

时间:2014-04-25 10:08:10

标签: android android-activity

我正在开展第二项活动:

            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),但我真的不知道发生了什么。

如果它在我的程序中帮助所有发生在第二和第三个活动中,但它并不重要。

2 个答案:

答案 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)。