我正在尝试以编程方式将layout.xml文件的ID传递给View.inflate方法,但不确定如何处理。我有一段测试代码,我正努力开始工作,如您所见,我已经尝试过将它作为String传入,但这不起作用。
有任何想法吗?谢谢
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);
}
最佳答案
int layoutId = getResources().getIdentifier("box"+i, "layout", getPackageName());
它也适用于其他事物,例如可绘制对象(“ drawable”而不是“ layout”)等。只需替换第二个参数即可。
编辑:看到您的编辑,只需将“ id”替换为“ layout”,就可以了。
关于android - Android将R.layout.extra_layout动态传递给View.inflate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26452200/