0

2 つのアクティビティ (A と B)があります。アクティビティA は、2 つのEditText (1 および 2)で構成されます。A からアクティビティ B を起動する意図があります。次に、アクティビティ B から、文字列を EditText2 に渡す意図があります。

私の問題は、Activity B から EditText2 にインテントを渡した後、EditText1 に入力した単語が消えてしまうことです。私の質問は、Activity B から EditText2 にインテントを渡した後でも、EditText1 に入力した単語を維持するにはどうすればよいかということです。これが私の問題のサイクルです:

EditText1に何かを入力>アクティビティBを起動>アクティビティBから文字列を取得してEditText2に渡す> EditText1に入力した単語が消える

これが私のコードです:

アクティビティ A:

public class ActivityA extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_a);

        Intent intent = getIntent();
        String message = intent.getStringExtra(ActivityB.EXTRA_MESSAGE);

        EditText editText = (EditText) findViewById(R.id.edittext2);
        editText.setText(message);   
    }

    public void to_actb(View view) {

        Intent intent = new Intent(this, ActivityB.class);
        startActivity(intent);
    }

アクティビティ B

public class ActivityB extends Activity {

    public final static String EXTRA_MESSAGE = "hello.hey.MESSAGE";

....

    public void to_acta(View view) {

        Intent intent = new Intent(this, ActivityA.class);
        TextView textView = (TextView) findViewById(R.id.text);
        String message = textView.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);      
    }
4

1 に答える 1

0

この構造を使用して、あなたがしていることは次のとおりです。

Call ActivityA(ID:1 for example)-> Call ActivityB(ID:2)-> Call ActivityA(ID 3!!) 初めてと同じアクティビティを呼び出しているのではなく、独自の値を持つ新しい ActivityA を取得しています。 .

これを修正する最善の方法は、startActivityforResult を使用し、return-intent でデータを渡すことです。ここで良い例を見つけることができますhttps://stackoverflow.com/a/10407371/585540 .

于 2013-11-10T19:02:38.057 に答える