2012-05-01 4 views
1

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

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

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

+0

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

ответ

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(); 
    } 

}); 

второго на первый:

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"); 
6

Похоже, использование extras Bundle будет лучшей идеей. вы реализуете его так:

активность 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); 

активность 2

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Bundle data = getIntent().getExtras(); 
    String nume = data.getStringExtra("nume"); 
    String prenume = data.getStringExtra("prenume"); 
} 
Смежные вопросы