Android动态地将R.layout.extra_layout传递给View.inflate

时间:2014-10-19 15:44:01

标签: android view android-inflate

我尝试以编程方式将layout.xml文件的id传递给View.inflate方法,但我不确定如何进行此操作。我有一些测试代码可以让我开始工作,而且你会发现我已经尝试过将其作为字符串传递但不起作用。

有什么想法吗?谢谢。

LinearLayout main = (LinearLayout) findViewById(R.id.mainLayout);    
for (int i = 0; i < 3; i++) {
        String boxToInflate="R.layout.box"+Integer.toString(i);
        LinearLayout ll = (LinearLayout) View.inflate(MainActivity.this, boxToInflate, null);
        main.addView(ll);
}

编辑:几分钟后。

我想我可能会在这个测试代码上取得一些进展:

    // Get outer relative layout
    LinearLayout main = (LinearLayout) findViewById(R.id.mainLayout);
    for (int i = 0; i < 3; i++) {
        // String boxToInflate="R.layout.box"+Integer.toString(i);
        int resID = getResources().getIdentifier("box" + i, "id",
                getPackageName());
        LinearLayout ll = (LinearLayout) View.inflate(MainActivity.this,
                resID, null);
        main.addView(ll);
    }

1 个答案:

答案 0 :(得分:2)

int layoutId = getResources().getIdentifier("box"+i, "layout", getPackageName());

它也适用于其他东西,如drawables(“drawable”而不是“layout”)等。只需替换第二个参数。

编辑:看到你的编辑,只需用“布局”替换“id”就可以了。