FrameLayout content = (FrameLayout) findViewById(android.R.id.content);
这给了我一个错误
error: cannot find symbol
FrameLayout rootLayout = (FrameLayout)findViewById(android.R.id.content);
^
symbol: method findViewById(int)
我已经导入了所需的R包
答案 0 :(得分:1)
尝试:FrameLayout content =(FrameLayout)findViewById(R.id.content);
如果这不起作用,请删除yourPackage.R的导入并点击“修复导入”按钮,不确定您执行的导入是否正确。我总是有两种不同的选择。
答案 1 :(得分:1)
您似乎正在尝试从其他班级访问当前Activity
的布局。不要试图在不同的班级中找到FrameLayout
,而是将FrameLayout
的引用保存在Activity
内,并将FrameLayout
传递给您的单独班级(班级)你目前在哪里看到这个问题。)
E.g。
活动类:
...
OtherObject myOtherObject = new OtherObject();
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.my_frame_layout);
myOtherObject.doStuffWithFrameLayout(frameLayout);
...
OtherObject类:
...
public void doStuffWithFrameLayout(FrameLayout frameLayout) {
//You can use the FrameLayout here and do stuff with it.
//You will likely also want to pass in a Context object if you want to
//create a LayoutInflater or do other Context-dependent stuff
}
...
答案 2 :(得分:0)
您可以再次致电setContentView()
,但请注意这会使您的所有视图参考无效,因此请务必再次初始化它们。
这几乎没有理由这样做,所以我建议你研究使用Fragments,然后换掉片段。
答案 3 :(得分:0)
要使用android.R.id.content
,您必须导入android.R,而不是yourAppPackage.R。
要在一个活动中使用多个布局,您必须使用ViewFlipper或ViewAnimator(或多次调用setContentView,但如果您有大量布局,则资源非常昂贵)。