Как отправить переменные из основного действия на несколько действий в Android?
Я пытаюсь создать приложение, которое имеет
Основная деятельность
это страница входа в систему, она содержит 4 переменные, когда я нажимаю кнопку входа в систему, она переходит к другой деятельности HomeTab с помощью намеренияIntent i = new Intent(FirstMain.this,Home_tab.class);
startActivity(i);
HomeTab - имеет три вида вкладок.
а. Профиль
б. учетная запись
с. настройки
Моя проблема заключается в том, как передать эти 4 переменные из MainActivity в 3 действия на вкладке
7 ответов
У вас есть два варианта.
- Вы можете использовать намерение.
- Вы можете использовать общие предпочтения.
В классе 1:
i.putExtras("Variable1", "Value1");
i.putExtras("Variable2", 2);
i.putExtras("Variable3", true);
startActivity(i);
В классе 2:
String Var1 = this.getIntent().getExtras().getString("Variable1");
int Var2 = this.getIntent().getExtras().getInt("Variable2");
boolean Var3 = this.getIntent().getExtras().getBool("Variable3");
Вы можете добавить Bundle в качестве дополнительного параметра в намерении
Bundle bundle = new Bundle();
bundle.putString("key", "peanuts");
bundle.putInteger("key2", 100);
i.putExtras(bundle);
Затем, чтобы получить его
final Bundle parameters = this.getIntent().getExtras();
String food = parameters.getString("key");
Вы можете передать их в Intent, который вы используете для запуска HomeTab (см. Intent).
В логине активности отправьте переменную через Intent
Intent i = new Intent(FirstMain.this,Home_tab.class);
i.putExtra("var1", "username");
i.putExtra("var2", "activity";
startActivity(i);
В Home_Tab получить намерение
Intent intent = getIntent();
String id = intent.getStringExtra("var1");
String name = intent.getStringExtra("var2");
Информацию об общих настройках смотрите здесь
Используйте intent.putExtra для передачи значений, которые вы хотите
Intent i=new Intent(FirstMain.this,Home_tab.class);
i.putExtra("Profile", "profiledata");
i.putExtra("Account", "Account data");
startActivity(i)
и получить эти передаваемые значения в следующем упражнении
Intent intent = getIntent();
String id = intent.getStringExtra("Profile");
String name = intent.getStringExtra("Account");
Проверьте, как я могу получить дополнительные данные от намерения на Android?
Если у вас есть несколько "глобальных" переменных, вы можете настроить "BaseActivity", которая наследуется от Activity, не имеет соответствующего представления, а затем все остальные Activity наследуют от BaseActivity, а не напрямую от Activity.
Это позволяет вам иметь общедоступные переменные общего доступа в BaseActivity, к которым могут обращаться все остальные ваши действия, которые наследуются от него.
Очевидно, что будьте осторожны с этой техникой, она может быть очень запутанной и привести к глобальным переменным, которые не должны быть глобальными и т. Д. Но это удобно для очистки кода, дублирующегося между представлениями (общие методы в BaseActivity) или для передачи информации между представлениями., как вошедшее в систему состояние.