1

我正在尝试创建一个具有

  1. MainActivity
    它是一个登录页面,它包含 4 个变量,当我单击登录按钮时,它会使用意图转到另一个活动 HomeTab
    Intent i = new Intent(FirstMain.this,Home_tab.class);
    startActivity(i);

  2. HomeTab - 它有三个选项卡视图。
    一种。简介
    B. 账户
    C. 设置

我的问题是如何将 MainActivity 中的 4 个变量传递给 Tab 中的 3 个活动

4

7 回答 7

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");
于 2013-01-29T09:38:48.673 回答
3

第 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");
于 2013-01-29T09:40:01.707 回答
2

您可以在用于启动 HomeTab 活动的 Intent 中传递它们(请参阅Intent)。

于 2013-01-29T09:37:50.667 回答
1

在登录活动中通过 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");

有关共享偏好的信息,请参见此处

于 2013-01-29T09:39:47.860 回答
1

使用 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 上的意图获取额外数据?

于 2013-01-29T09:39:58.887 回答
0

你有两个选择。

  1. 你可以使用意图。
  2. 您可以使用共享首选项。
于 2013-01-29T09:39:14.810 回答
0

如果您有许多“全局”变量,您可以设置一个从没有相应视图的 Activity 继承的“BaseActivity”,然后让所有其他活动从 BaseActivity 继承,而不是直接从 Activity 继承。

这使您可以在 BaseActivity 上拥有公共共享变量,从该变量继承的所有其他活动都可以访问。

显然要小心这种技术,它很容易变得非常混乱并导致不应该是全局的全局变量等。但它对于清理跨视图重复的代码(BaseActivity 上的共享方法)或在视图之间传递信息很方便,就像一个登录状态。

于 2013-12-10T20:16:44.013 回答