0

不可解な質問で申し訳ありませんが、私はそれをどのように表現するかわかりません。

         Intent myIntent = new Intent(CurrentClass.this, ClassToCall.class);
         myIntent.putExtra("name", "value");
         Current.this.startActivity(myIntent);     

上記のコードを使用して CurrentClass から ClassToCall にメッセージを渡すことができることはわかっていますが、ClassToCall で「finish()」メソッドを呼び出すときに、String を CurrentClass に戻したいと考えています。これを行う方法について助けを得ることができますか? 何度も言い方で申し訳ありません。

4

3 に答える 3

4

Android の別のアクティビティにデータまたはパラメーターを渡す必要がある場合があります。一度にアクティブにできるアクティビティは 1 つだけです。結果の新しいアクティビティを開くアクティビティと開かれたアクティビティには、リクエストに基づいてインターフェイスまたは別のオプションを設定するためのパラメーターが必要です。そのため、システムが 2 つのアクティビティ間でパラメーターの送信と取得を処理できることが重要です。

注: startActivity(Intent) メソッドは、アクティビティ スタックの一番上に配置される新しいアクティビティを開始するために使用されます。実行するアクティビティを記述する単一の引数、Intent を取ります。

とても使いやすいです。リクエスト コードでアクティビティを開始し、結果コードで終了します。アクティビティの呼び出し元は、要求コードと結果コードを使用して、スイッチャーを実装し、いくつかのロジックを実装できます。次のサンプルを見れば明らかです。

startActivityForResult(intent, CREATE_REQUEST_CODE);

同じアクティビティで、受信メソッドを実装する必要があります。次のようになります。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   if (requestCode == CREATE_REQUEST_CODE) {
      if (resultCode == RESULT_OK) {
        //ACT
      }
   }
}

最後の部分は、呼び出されるアクティビティにあります。最後に、結果コードを指定する必要があります。

setResult(RESULT_CANCELED, null);
finish();

//また

setResult(RESULT_OK, null);
finish();

結論として、Android SDK に既に実装されている結果コードを再利用することをお勧めします。特に、少なくとも再利用できます

RESULT_CANCELED : Standard activity result : operation canceled.
RESULT_FIRST_USER : Start of user-defined activity results.
RESULT_OK : Standard activity result : operation succeeded. 

developer.android.comのドキュメント

この問題と例の詳細については、次をご覧ください。

リンク 1リンク 2が最良の例かもしれません (詳細)。

于 2012-05-29T08:55:19.687 に答える
2

あなたはそれを使用してそれを行うことができますstartActivityForResult(myIntent,1);

この例を参照してください

于 2012-05-29T08:40:42.017 に答える
0

次のように ClassToCall に明示的なインテントを作成します。

   Intent intent = new Intent(ClassToCall.this,CurrentClass.class);
   intent.putExtra("Value", "Robert");
   startActivity(intent);
   finish();

CurrentClass では:

    Bundle extra = getIntent().getExtras();
    if(extra != null){
    String extras =  extra.getString("Value");

    Log.e("TAG", " "+extras );
    }

これがあなたが探しているものであることを願っています。

于 2012-05-29T08:59:54.093 に答える