我很好奇我如何使用
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
有什么想法吗?
答案 0 :(得分: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);
答案 1 :(得分:2)
发送代表你的布局的int:
i.putExtra("layout_id", R.layout.my_layout1);
并加载
setContentView(getIntent().getIntExtra("layout_id", R.layout.default_layout);
答案 2 :(得分:0)
R.layout.a_layout
之类的值只是int
。所以,只需使用putExtra("Key", R.layout.a_layout);
。
然后,在您的接收活动中,只需将相同的int
传递给setContentView()
,例如:
public void onCreate(Bundle savedInstanceState)
{
int layout = getIntent().getIntExtra("Key", -1);
if (layout != -1)
setContentView(layout);
}