标签:
setContentView(R.layout.activity_main);
Button b2 = (Button)findViewById(R.id.myButton2);
setContentView(R.layout.fragment001);
b2.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v)
{
jumpToLayout1();
}
});
在上面的代码中,id为myButton2的button位于fragment001中,不在activity_main中。测试时发现,b2为null,从而运行到b2.setOnClickListener(new Button.OnClickListener()会报错;
setContentView(R.layout.activity_main);
setContentView(R.layout.fragment001);
Button b2 = (Button)findViewById(R.id.myButton2);
b2.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v)
{
jumpToLayout1();
}
});
更改两者顺序后,测试显示b2不为null。从而推导findViewById获取的参数id的控件是位于当前活动页面Layout的,当当前Layout不存在该id指示的控件时,返回为null。setContentView该函数是设置当前Activity的layout。
findViewById和setContentView的关系
标签:
原文地址:http://www.cnblogs.com/qi123/p/4578535.html