在我的应用程序中,我调用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 );
我得到一个空指针异常。
答案 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