码迷,mamicode.com
首页 > 其他好文 > 详细

findViewById和setContentView的关系

时间:2015-06-15 18:33:51      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:


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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!