Android-在代码中动态命名资源

Android-在代码中动态命名资源,android,string,layout,android-intent,resources,Android,String,Layout,Android Intent,Resources,简单地说,我正在尝试重用我的适配器和活动类。当我调用意图来打开我的活动时,我会传递我想要膨胀为StringExtra的布局名称,如下所示: i.putExtra("layout_name", "layout_a"); 然后在我的活动中,我获得额外的: Intent i = getIntent(); String layout_name = i.getStringExtra("layout_name"); 现在我想用这种格式: setContentView(R.layout. + layout

简单地说,我正在尝试重用我的适配器和活动类。当我调用意图来打开我的活动时,我会传递我想要膨胀为StringExtra的布局名称,如下所示:

i.putExtra("layout_name", "layout_a");
然后在我的活动中,我获得额外的:

Intent i = getIntent();
String layout_name = i.getStringExtra("layout_name");
现在我想用这种格式:

setContentView(R.layout. + layout_name); 
这样的事情可能吗?正确的语法是什么?

类似于

int layoutID = getResources().getIdentifier("layout_name" , "layout", getPackageName());
setContentView(layoutID); 
大概

int layoutID = getResources().getIdentifier("layout_name" , "layout", getPackageName());
setContentView(layoutID); 

您可以传递布局标识符:

i.putExtra("layout_id", R.layout.your_layout);
将此值作为

int layout_id = getIntent().getIntExtra("layout_id");
将此id设置为

setContentView(layout_id); 

您可以传递布局标识符:

i.putExtra("layout_id", R.layout.your_layout);
将此值作为

int layout_id = getIntent().getIntExtra("layout_id");
将此id设置为

setContentView(layout_id); 

您还可以尝试使用资源的Int-ID并使用它

int layout = getIntent().getExtras().getInt("LayoutID");
setContentView(layout);

希望能有帮助

您还可以尝试使用资源的Int-ID并使用它

int layout = getIntent().getExtras().getInt("LayoutID");
setContentView(layout);

希望能有帮助

更多信息请看我尝试了这个,但没有运气,我得到了错误-没有找到资源。我敢肯定是我做错了什么。更多信息请看我尝试了这个,但没有运气,我得到了错误-没有找到资源。我肯定是我做错了什么。