Как отправить переменные из основного действия на несколько действий в Android?

Я пытаюсь создать приложение, которое имеет

  1. Основная деятельность
    это страница входа в систему, она содержит 4 переменные, когда я нажимаю кнопку входа в систему, она переходит к другой деятельности HomeTab с помощью намерения
    Intent i = new Intent(FirstMain.this,Home_tab.class);
    startActivity(i);

  2. HomeTab - имеет три вида вкладок.
    а. Профиль
    б. учетная запись
    с. настройки

Моя проблема заключается в том, как передать эти 4 переменные из MainActivity в 3 действия на вкладке

7 ответов

Решение

У вас есть два варианта.

  1. Вы можете использовать намерение.
  2. Вы можете использовать общие предпочтения.

В классе 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) или для передачи информации между представлениями., как вошедшее в систему состояние.

Другие вопросы по тегам