在android中的活动中的onResume()获取空指针异常

时间:2013-01-31 06:08:23

标签: android

我有一个自定义视图。当应用程序第一次启动时,由于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();即应用程序首次启动!!我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

这可能会发生,因为成员变量mCurView可能为null。您必须在使用之前检查它。在onResume()使用:

if(mCurlView != null)
   mCurlView.onResume();

答案 1 :(得分:0)

您必须检查NULL条件:

@Override
public void onResume() {
    super.onResume();

    if(mCurlView!=null)
       mCurlView.onResume();
}