我希望能够循环遍历xml布局文件列表,而不必在setContentView参数中指定特定的文件。
显然类型不正确,但是类似:
ArrayList<String> pages = new ArrayList<String>();
//(Where each of the xml pages are stored like R.layout.page1, R.layout.page2, etc)
setContentView(pages.get(0));
这有可能吗?
答案 0 :(得分:3)
您应该使用ViewFlipper小部件。这是一个example。
以这种方式管理内容视图及其子窗口小部件更加清晰。
无论如何,可以使用Resources.getIdentifier方法从名称中获取资源ID。
答案 1 :(得分:2)
是。这是可能的。但有两点说明:
int
s,而不是String
s。答案 2 :(得分:2)
在我创建的应用程序中,我使用以下代码将图像按钮设置为特定资源:
imgBtnCard.setImageResource(this.getResources()
.getIdentifier("com.twp.cptshitface:drawable/" +
cardType + cardDetails[1] , null, null));
我想说这就是你要找的东西:
int resLayoutId = this.getResources().
getIdentifier("your.package.namespace:layout/" +
pages.get(0), null, null);
setContentView(resLayoutId);
// where pages.get(0) returns a string such as "main2"
我已经在onCreateMethod中快速测试了这段代码。
如果添加更多布局和/或资源,请记得清理项目,以便更新ID!