我有一个Main xml及其Activity页面。现在我需要另一个menu.xml的Linerlayout
我的findviewbyid抛出一个nullpointer。是否有任何解决方案。
注意:我不能将两个xml放在一个地方。使用包含也不起作用
答案 0 :(得分:0)
尝试使用
layoutObject.findViewById();
答案 1 :(得分:0)
当你膨胀布局时,布局还没有在UI中,这意味着用户在添加之前将无法看到它。要执行此操作,您必须暂停ViewGroup
(LinearLayout
,RelativeLayout
等)并向其中添加膨胀的View
。一旦添加它们,您就可以像处理任何其他视图一样处理它们,包括findViewById
方法,添加侦听器,更改属性等等。
//Inside onCreate for example
setContentView(R.layout.main); //Sets the content of your activity
View otherLayout = LayoutInflater.from(this).inflate(R.layout.other,null);
//You can access them here, before adding `otherLayout` to your activity
TextView example = (TextView) otherLayout.findViewById(R.id.exampleTextView);
//This container needs to be inside main.xml
LinearLayout container = (LinearLayout)findViewById(R.id.container);
//Add the inflated view to the container
container.addView(otherLayout);
//Or access them once they're added
TextView example2 = (TextView) findViewById(R.id.exampleTextView);
//For example, adding a listener to the new layout
otherLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Your thing
}
});
LinearLayout
,其ID为container
TextView
,其ID为exampleTextView