您的位置:首页 > 其它

findViewById返回为NULL

2016-01-27 16:00 169 查看

调试疯狂Android 代码时候,发现总是addView程序奔溃;

<pre name="code" class="java">protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

LinearLayout main = (LinearLayout)findViewById(R.id.main);
setContentView(R.layout.activity_main);

//程序创建ImageView组件
final ImageView image = new ImageView(this);

if(main!=null){
main.addView(image);
}

//初始化显示第一张图片

image.setImageResource(R.drawable.c1);

image.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
image.setImageResource(images[++currentImg % images.length]);
}

});

}



然后发现是LinearLayout main = (LinearLayout)findViewById(R.id.main);main返回为空。

发现 findViewById 与 setContentView 有关。所查询的控件id必须包含于setContentView中设置的layout中。解决的方法就是将LinearLayout main = (LinearLayout)findViewById(R.id.main);扔在setContentView后面即可。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: