1

私には2つの活動があります。アクティビティ A e アクティビティ B.

アクティビティ A 内にデータを含む editText があります。アクティビティ B に渡します。

しかし、アクティビティ B を A に渡そうとすると、アクティビティ A が再起動し、edittext のデータが失われます。A内のデータを使用してBをAに渡すにはどうすればよいですか?

アクティビティ B のコードは次のとおりですが、機能しません

       Intent afectarQuotaSocios = new Intent(B.this,A.class);
    afectarQuotaSocios.putExtra("ArrayListIdSocios",al);
    afectarQuotaSocios.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(afectarQuotaSocios); 

何か案は?ご協力いただきありがとうございます

4

5 に答える 5

3

あなたは使用する必要があります

startActivityForResult(Intent intent, int requestCode);

サブアクティビティを開始します。あなたの場合のように、そのB。

アクティビティの結果をそのスーパーアクティビティに戻すには、

setResult();方法

コールバックメソッドで、スーパーアクティビティの結果が返されます。onActivityResult()

于 2012-09-03T12:07:01.750 に答える
1

startActivityForResultメソッドを使用する必要があります

次に、B アクティビティで結果を渡すことができます。

resultIntent = new Intent(null);
resultIntent.putExtra(YOUR_CONSTANT_TEXT_IDENTIFIER, textValue);
setResult(Activity.RESULT_OK, resultIntent);
finish();

そして、onActivityResultメソッドで A アクティビティの値を取得します

于 2012-09-03T12:07:59.253 に答える
0

マニフェストファイルで、このタグをアクティビティAに追加するだけで、アクティビティAandroid:launchMode="singleInstance"に対してonCreateが呼び出されないため、データが更新されません。

于 2012-09-03T12:07:20.057 に答える
0

新しいインテント オブジェクトを作成し、それを setResult(…) メソッド呼び出しで戻します。その後、finish() メソッドが呼び出され、コントロールが親アクティビティに戻されます。

 Intent returnIntent = new Intent();
  returnIntent.putExtra("SELECTVALUE",book);
  setResult(RESULT_OK,returnIntent);        
  finish();
...

その後、以前のアクティビティに戻ります。

protected void onActivityResult(int requestCode, int resultCode, Intent data)
  {
  switch(requestCode) {
  case BOOK_SELECT: 
        if (resultCode == RESULT_OK) {
            String name = data.getStringExtra("SELECTVALUE");
             System.out.println("Name"+name);
            }

} }

于 2012-09-03T12:39:28.400 に答える
0

開始されたアクティビティのonCreateメソッドを呼び出し、最初からやり直す新しいアクティビティを開始しています。同じ状態を維持するためにやりたいことはfinish()、アクティビティ B から呼び出すことです。

startActivityForResultあなたが求めているこの動作を得るために見てください。

于 2012-09-03T12:04:14.823 に答える