我尝试调用 fragment 类中的构造函数。但是它显示错误。
这是构造函数代码:
public CameraPreview(Context fragment, Camera camera,
PreviewCallback previewCb,
AutoFocusCallback autoFocusCb) {
super(fragment);
mCamera = camera;
previewCallback = previewCb;
autoFocusCallback = autoFocusCb;
// Install a SurfaceHolder.Callback so we get notified when the
// underlying surface is created and destroyed.
mHolder = getHolder();
mHolder.addCallback(this);
// deprecated setting, but required on Android versions prior to 3.0
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
然后我尝试访问位于另一个 fragment 类中:
mPreview = new CameraPreview(this, mCamera, PreviewCb, autoFocusCB);
FrameLayout预览 = (FrameLayout) getView().findViewById(R.id.cameraPreview);
Preview.addView(mPreview);
我注意到问题是“这个”。我应该如何解决呢?谢谢。
最佳答案
如果这个调用是在 fragment 中,那么它应该是:
mPreview = new CameraPreview(this.getActivity(), mCamera, previewCb, autoFocusCB);
this.getActivity()
将为您获取 Context,Fragment
不会扩展 Context 类,因此这实际上是错误的命名:Context Fragment
>.
关于java - 无法访问 fragment 中的构造函数 public CameraPreview(Contextfragment,Cameracamera,PreviewCallbackpreviewCb,AutoFocusCallbackautoFocusCb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21509944/