问题描述
- FindViewbyID空指针问题
-
先看类:public class MainActivity extends Activity { Canvas canvas; public int barometerRotationAngle=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); Resources res = getResources(); canvas=new Canvas(); final Altimeter altimeter=(Altimeter) this.findViewById(R.id.altimeter); final Button buttonup=(Button) this.findViewById(R.id.buttonup); buttonup.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub barometerRotationAngle+=10; altimeter.setBarometerRotationAngle(barometerRotationAngle); } }); } } }
程序在 altimeter.setBarometerRotationAngle(barometerRotationAngle);这里出现了空指针错误提示,但是alimeter类已经成功显示了图片,也就是说,他的onDraw()方法已被调用了。为什么在Onclick里面会变成了空指针?
解决方案
不知道你的图片怎么显示的,你先确认
final Altimeter altimeter=(Altimeter) this.findViewById(R.id.altimeter);是否找到了对象
解决方案二:
最简单就是自己跟踪一下,这也不复杂,看是这行报错了还是onDraw中报错了。
解决方案三:
应该是找到对象了吧,否则,altimeter里面的onDraw不会被调用到。我画图片的方法就在onDraw里面。启动程序后,图片会显示出来,但是一按按钮就报空指针错误
时间: 2024-08-28 11:59:54