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.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 に答える