【问题标题】:Android - Dynamically name resources inside codeAndroid - 在代码中动态命名资源
【发布时间】:2013-08-12 10:06:02
【问题描述】:

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

i.putExtra("layout_name", "layout_a");

然后在我的 Activity 中,我获得了额外的:

Intent i = getIntent();
String layout_name = i.getStringExtra("layout_name");

现在我想以这种格式使用它:

setContentView(R.layout. + layout_name); 

这样的事情可能吗?正确的语法是什么?

【问题讨论】:

    标签: android string layout android-intent resources


    【解决方案1】:

    类似的,

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

    【讨论】:

    【解决方案2】:

    你可以传递布局标识符:

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

    得到这个值

    int layout_id = getIntent().getIntExtra("layout_id");
    

    将此id设置为

    setContentView(layout_id); 
    

    【讨论】:

      【解决方案3】:

      你也可以试试Int ID of resource并使用它。

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

      希望对你有帮助!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-13
        • 2012-05-30
        • 1970-01-01
        • 2015-01-22
        • 2010-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多