我有一个自定义视图。当应用程序第一次启动时,由于onResume()Activity中的空指针异常,我在特定活动中获得空指针。
我正在使用的代码是
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
....................
..................
..........
int index = 0;
if (getLastNonConfigurationInstance() != null) {
index = (Integer) getLastNonConfigurationInstance();
}
mCurlView = (CurlView) findViewById(R.id.curl);
mCurlView.setPageProvider(new PageProvider());
mCurlView.setSizeChangedObserver(new SizeChangedObserver());
mCurlView.setCurrentIndex(index);
mCurlView.setBackgroundColor(0xFF202830);
}
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap(v.getLayoutParams().width,
v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
@Override
public void onPause() {
super.onPause();
mCurlView.onPause();
}
@Override
public void onResume() {
super.onResume();
mCurlView.onResume();
}
我在此行获取空指针异常mCurlView.onResume();即应用程序首次启动!!我该如何解决这个问题?
答案 0 :(得分:1)
这可能会发生,因为成员变量mCurView可能为null。您必须在使用之前检查它。在onResume()
使用:
if(mCurlView != null)
mCurlView.onResume();
答案 1 :(得分:0)
您必须检查NULL条件:
@Override
public void onResume() {
super.onResume();
if(mCurlView!=null)
mCurlView.onResume();
}