2

我有一个自定义视图。当应用程序第一次启动时,由于 onResume() 活动中的空指针异常,我在特定活动中得到空指针。

我正在使用的代码是

    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(); 即仅在应用程序首次启动时!!我该如何解决这个问题?

4

2 回答 2

1

这可能是因为成员变量 mCurView 可能为空。在使用它之前,您必须检查它。在onResume()使用中:

if(mCurlView != null)
   mCurlView.onResume();
于 2013-01-31T06:25:05.267 回答
0

您必须检查 NULL 条件:

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

    if(mCurlView!=null)
       mCurlView.onResume();
}
于 2013-01-31T06:11:33.173 回答