0

我很好奇我是如何使用的

putExtra("something", something);

为了在我的应用程序中进行新活动,

Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("something", something)
startActivity(i);

我需要知道发送端和接收端的外观如何,根据意图中通过 putExtra 发送的内容加载特定的布局文件。

因此,如果我在接收端发送 i.putExtra("a", a) ,它将使用 R.layout.a_layout.xml 创建一个内容视图

但如果我发送 i.putExtra("b", b) 它将加载 R.layout.b_layout.xml

有任何想法吗?

4

3 回答 3

7

这样做的一种好方法是说:

Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("layout", R.layout.a_layout.xml);

将正确的布局发送到您的新班级。然后在新类中,您可以使用:

int layout = getIntent().getIntExtra("layout", R.layout.default_layout);
setContentView(layout);
于 2012-10-05T22:38:04.173 回答
2

发送代表您的布局的 int:

i.putExtra("layout_id", R.layout.my_layout1);

并加载它

setContentView(getIntent().getIntExtra("layout_id", R.layout.default_layout);
于 2012-10-05T22:37:43.977 回答
0

诸如R.layout.a_layoutis 之类的值只是一个int. 所以,只需使用putExtra("Key", R.layout.a_layout);.

然后,在您的接收活动中,只需将其传递intsetContentView(),例如:

public void onCreate(Bundle savedInstanceState)
{
    int layout = getIntent().getIntExtra("Key", -1);
    if (layout != -1)
        setContentView(layout);
}
于 2012-10-05T22:36:38.297 回答