0

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

我试过了

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

并在布局中添加了一个 id 并尝试了

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

这些都不起作用。他们编译得很好但是当我运行它时,只要我尝试调用类似的东西

button1 = view1.findViewById( R.id.button1 );

我得到一个空指针异常。

4

3 回答 3

2

您需要使用布局充气器来获得第二个布局,如下所示:

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

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

Button button1 = view.findViewById( R.id.button1 );
于 2013-01-08T19:00:22.313 回答
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
于 2013-01-08T19:12:17.060 回答
0

你可以考虑看这里include您可以通过在 XML 中使用来创建布局并在不同的布局中重用它们

于 2013-01-08T18:59:55.653 回答