如何引用当前布局文件以外的布局文件?

时间:2013-01-08 18:50:37

标签: android android-layout view

在我的应用程序中,我调用setContentView( layout1.xml );,我想访问DIFFERENT布局文件中的元素,我们称之为layout2.xml。

我试过了

view1 = (View) findViewById( R.layout.layout2 ); 

并在布局中添加了ID并尝试了

view1 = (View) findViewById( r.id.layout2 ); 

这些都不奏效。他们编译得很好但是当我运行它时,我会尝试调用类似

的东西
button1 = view1.findViewById( R.id.button1 );

我得到一个空指针异常。

3 个答案:

答案 0 :(得分:2)

您需要使用布局inflater来获得第二个布局:

 View view = LayoutInflater.from(getBaseContext()).inflate(R.layout.layout2, null);

然后从该布局引用您的按钮:

Button button1 = view.findViewById( R.id.button1 );

答案 1 :(得分:2)

您可以首先通过膨胀来访问layout2中的元素,如下所示:

    LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
    LinearLayout layout = (LinearLayout)inflater.inflate(R.layout.layout2, null);
    //or View view = (View)inflater.inflate(R.layout.layout2, null);
    Button button = (Button)layout.findViewById(R.id.button1);
    //add code for button

答案 2 :(得分:0)

您可以考虑查看HERE。您可以使用XML中的include

创建布局并在不同的布局中重用它们