-1

我在主要活动上有一个按钮,单击该按钮会运行一个方法。在该方法中,我有第二个活动的意图,但我想使用第一个活动的按钮设置该活动的内容视图,因为我想在第一个活动上有多个按钮,但重用第二个活动和只需更改布局。所以....

单击 button1 > 将视图设置为 layout1 > 以 layout1 作为内容视图启动活动或单击 button2 > 将视图设置为 layout2 > 以 layout2 作为内容视图启动活动

我想这样做以避免创建太多活动

谢谢

4

3 回答 3

2

有很多方法可以做到这一点。这里只是其中的几个:

  1. 通过向意图 (putExtra) 添加额外的 int 来传递要使用哪个布局的参数,并在第二个活动的 onCreate 上使用意图来获取它。

  2. 使用片段而不是活动,你会有更多的方法来做到这一点。

  3. 不推荐 - 使用静态 int。

于 2013-07-08T14:44:49.103 回答
1

单击其中一个按钮时,您将通过一个意图启动第二个活动,如果单击第一个按钮,则将值 1,如果单击第二个按钮,则将值 2。

然后在第二个活动中,您从 Intent 中读取一个值,如果它是 1,则将 ContentView 设置为第一个布局,如果它是 2,则设置为第二个布局。

于 2013-07-08T14:48:05.663 回答
1

使用 Intent.putExtra(String key, int data) 向您的意图添加额外信息。然后在第二个活动中使用 getIntent().getIntExtra(key)。您可以为数据使用除整数以外的其他值,但我建议您使用它,以便您可以轻松地使用 switch 块。

编辑:

此外,正如 yarian 所说:

您可以只传递布局本身,它只是一个位于 R 文件中的 int。

这样做可能是一个好主意来消除 switch 块(除非您还需要执行其他代码,但这仍然是一个好主意,因为您不会为要传递的每个布局定义单独的常量)所以在您的第一个活动说:

intent.putExtra("LAYOUT", R.layout.layout_name);

在第二个:

setContentView(getIntent().getIntExtra("LAYOUT"), DEFAULTVALUE);

希望我有所帮助!

于 2013-07-08T14:54:47.987 回答