Вопрос по android – передавать данные между действиями с намерением

1

Мой случай немного особенный, поэтому я объясню здесь. У меня есть 2 действия, первое с 2 правками и 1 кнопкой, а второе только с кнопкой. При нажатии кнопки в упражнении 1 программа намеренно отправляет информацию из текстовых правок в упражнение 2 и отображает ее в упражнении 2. В упражнении 2 кнопка предназначена только для возврата к занятию 1, и я называю это так

<code>    Button next = (Button) findViewById(R.id.button2);

    Intent myIntent = getIntent();
    String nume = myIntent.getStringExtra("nume");
    String prenume = myIntent.getStringExtra("prenume");
    next.setText(nume + " " + prenume);

    next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent intent = new Intent();
            setResult(RESULT_OK, intent);
            finish();
        }

    });
</code>

При первом вводе информации в правках они отображаются нормально в задании 2, но после того, как я вернусь к заданию 1 и введу новые значения при редактировании задания 2, отображаются значения, введенные в первый раз.

Так что, похоже, проблема в том, что изменения, переданные намерением, не будут обновляться каждый раз, когда я нажимаю кнопку 1, чтобы перейти к действию 2, начинающемуся со второй попытки.

Вам нужно показать код, который устанавливает данные о намерениях в упражнении 1. Timores

Ваш Ответ

2   ответа
6

extras Bundle будет лучшей идеей. Вы реализуете это так;

activity 1

 Intent pass = new Intent(ACTION_NAME);
 Bundle extras = new Bundle();
 extras.putString("nume", NUME_VAL);
 extras.putString("prenume", PRENUME_VAL);
 pass.putExtras(extras);
 startActivity(pass);

acctivity 2

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     Bundle data = getIntent().getExtras();
     String nume = data.getStringExtra("nume");
     String prenume = data.getStringExtra("prenume");
}
6

Button next = (Button) findViewById(R.id.button2);
next.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Intent intent = new Intent(getApplicationContext(),Second.class);
        intent.putExtra("Tag", "Value");
        startActivity(intent);
        finish();
    }

});

Seco, от первого до первого:

 Button previous= (Button) findViewById(R.id.button);
 previous.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Intent intent = new Intent(getApplicationContext(),First.class);
        startActivity(intent);
    }

});

Второе действие при создании:

Intent i = getIntent();
String val = i.getStringExtra("Tag");

Похожие вопросы