我有一个从RelativeLayout扩展的自定义视图。
我想尝试将此自定义视图设为单身。
我有这段代码:
private static CameraView sCameraView;
public static synchronized CameraView getInstance(Context context) {
if (sCameraView == null) {
sCameraView = new CameraView(context);
}
return sCameraView;
}
并试图从片段中使用它:
private CameraView mCameraView = CameraView.getInstance(getActivity().getApplicationContext());
mCameraView = (CameraView) mView.findViewById(R.id.camera_preview);
我从这段代码中得到一个NullPointException。 当我稍微改变一下时,还会出现InflateException。
如何从自定义视图访问静态实例并将其分配给变量?因为这样做:
CameraView.getInstance(getActivity().getApplicationContext()) = (CameraView) mView.findViewById(R.id.camera_preview);
是不允许的。
非常感谢任何帮助。
答案 0 :(得分:0)
私有静态CameraView sCameraView;是一个静态参考,但它是不可取的。 Read this
您应该避免将UI元素声明为静态。希望这能解决你的问题。