1

我不知道我哪里错了。这可能是一个微不足道的错误,但我无法弄清楚。

形成我的第一个活动我开始另一个活动的结果:

Intent ccard_intent= new Intent(this, create_ccard.class);
startActivityForResult(ccard_intent,start_activity_for_ccard);  

在新的活动中,我使用以下方法返回:

Intent i = new Intent();
i.putExtra("card_name", Card_name);
setResult(create_ccard.RESULT_OK);
finish();

在我的第一个活动的 onActivityResult 中:

  protected void onActvityResult(int requestCode, int resultCode, Intent data){

   super.onActivityResult(requestCode, resultCode, data);

    this.requestCode=requestCode;


    Toast.makeText(getBaseContext(), "resume working switch case error" + requestcode, Toast.LENGTH_LONG).show();


   if(resultCode==RESULT_CANCELED){

    flag=0;
   }
}

我在 requestCode 的地方收到 error0?为什么??我哪里出错了??它应该是 788,因为我在进行活动时使用它。

谢谢你!

4

2 回答 2

2

你的线

startActivityForResult(ccard_intent,start_activity_for_ccard); 

是真正决定你获得什么价值的人

this.requestCode=requestCode;

请参阅此处的文档。

查看您的 Toast 代码

Toast.makeText(getBaseContext(), "resume working switch case error" + requestcode, Toast.LENGTH_LONG).show();

我最好的猜测是,由于您要更改大小写(使用requestcode而不是requestCode),因此您会得到错误的值Toast

另外(经过长时间的讨论):您的方法签名是错误的。它读到

protected void onActvityResult(int requestCode, int resultCode, Intent data)

并且应该是

protected void onActivityResult(int requestCode, int resultCode, Intent data)

这很好地解释了为什么您的 requestCode 从未将其值从 0 更改。

于 2013-03-11T17:58:33.810 回答
0

改变

setResult(create_ccard.RESULT_OK);  

setResult(RESULT_OK);  
于 2013-03-11T17:38:28.910 回答