我尝试以编程方式将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);
}
答案 0 :(得分:2)
int layoutId = getResources().getIdentifier("box"+i, "layout", getPackageName());
它也适用于其他东西,如drawables(“drawable”而不是“layout”)等。只需替换第二个参数。
编辑:看到你的编辑,只需用“布局”替换“id”就可以了。