0

我为我的 Activity 动态创建了一个布局(不要问我为什么,这不是我的项目,但我被要求对其进行一些编辑)。我正在尝试在其中添加另一个布局,类似于状态栏。我为我添加的第二个布局有一个 XML 布局,这就是代码的样子:

AbsoluteLayout basicLayout = new AbsoluteLayout(this);
basicLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

setContentView(basicLayout);

LinearLayout logo_layout = (LinearLayout) findViewById(R.id.layout_logo);
Button back = (Button) findViewById(R.id.button_back);
Button options = (Button) findViewById(R.id.button_menu);

但是 findViewById 返回 null,这会在我尝试对 LinearLayout 内的两个按钮执行某些操作时导致 NullPointerExceptions。我试图清理项目,但没有帮助。感谢您对此的任何建议。

4

2 回答 2

2

您正在设置setContentView()basicLayout

所以你layout的永远不会被初始化,你的buttonslayoutsnull

尝试setContentView(R.layout.XML_LAYOUT_CONTAINING_YOUR_BUTTON);

编辑 使用布局充气机

    setContentView(basicLayout);

    //create a view to inflate the layout from the xml
    View view = getLayoutInflater().inflate(R.layout.XML_LAYOUT, basicLayout,false); 

    //add the view to the basic layout
    basicLayout.addView(view);

    LinearLayout logo_layout = (LinearLayout) view.findViewById(R.id.layout_logo);
    Button back = (Button) view.findViewById(R.id.button_back);
    Button options = (Button) view.findViewById(R.id.button_menu);
于 2013-07-09T11:12:07.603 回答
0

如果按钮位于 logo_layout 中,您需要在该特定布局中进行搜索。

Button back = (Button) logo_layout.findViewById(R.id.button_back);
于 2013-07-09T11:05:05.237 回答