我正在尝试创建一个具有
MainActivity
它是一个登录页面,它包含 4 个变量,当我单击登录按钮时,它会使用意图转到另一个活动 HomeTab
Intent i = new Intent(FirstMain.this,Home_tab.class);
startActivity(i);
HomeTab - 它有三个选项卡视图。
一种。简介
B. 账户
C. 设置
我的问题是如何将 MainActivity 中的 4 个变量传递给 Tab 中的 3 个活动
我正在尝试创建一个具有
MainActivity
它是一个登录页面,它包含 4 个变量,当我单击登录按钮时,它会使用意图转到另一个活动 HomeTab
Intent i = new Intent(FirstMain.this,Home_tab.class);
startActivity(i);
HomeTab - 它有三个选项卡视图。
一种。简介
B. 账户
C. 设置
我的问题是如何将 MainActivity 中的 4 个变量传递给 Tab 中的 3 个活动
您可以在意图中添加 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");
第 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");
您可以在用于启动 HomeTab 活动的 Intent 中传递它们(请参阅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 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");
你有两个选择。
如果您有许多“全局”变量,您可以设置一个从没有相应视图的 Activity 继承的“BaseActivity”,然后让所有其他活动从 BaseActivity 继承,而不是直接从 Activity 继承。
这使您可以在 BaseActivity 上拥有公共共享变量,从该变量继承的所有其他活动都可以访问。
显然要小心这种技术,它很容易变得非常混乱并导致不应该是全局的全局变量等。但它对于清理跨视图重复的代码(BaseActivity 上的共享方法)或在视图之间传递信息很方便,就像一个登录状态。