意图使用putExtra在新活动中显示特定布局

Jai*_*oks 0 java layout android android-intent

我很好奇我是如何使用的

putExtra("something", something);
Run Code Online (Sandbox Code Playgroud)

在我的应用程序内的新活动的意图,

Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("something", something)
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

我需要知道如何发送和接收端看起来像,加载特定的布局文件取决于通过意图中的putExtra发送的内容.

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

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

有任何想法吗?

dre*_*nay 7

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

Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("layout", R.layout.a_layout.xml);
Run Code Online (Sandbox Code Playgroud)

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

int layout = getIntent().getIntExtra("layout", R.layout.default_layout);
setContentView(layout);
Run Code Online (Sandbox Code Playgroud)