Am наследуя интерфейс, который называется ISurfaceTextureListener в этом кодеКак избежать превращения весь мой код на статические
class Camera
{
TextureView mTextureView;
Context _context;
public Camera (Context context, TextureView textureView)
{
_context = context;
mTextureView = textureView;
mTextureView.SurfaceTextureListener = new TextureViewListener();
}
private class TextureViewListener : Java.Lang.Object, TextureView.ISurfaceTextureListener
{
public void OnSurfaceTextureAvailable(SurfaceTexture surface, int width, int height)
{
OpenCamera(width, height); //Error Occurring Here
}
}
public void OpenCamera(int width, int height)
{
//Codes
}
}
Ошибка: ссылка на объект требуется для доступа к не-статического поля, метод и т.д ..
Я не хочу ставить OpenCamera(), потому что мне придется превратить весь мой код в статические методы, так есть ли способ избежать этого?
ПРИМЕЧАНИЕ: am только наследует интерфейс, потому что я не могу переопределить метод «OnSurfaceTextureAvailable» объекта Listener, единственный способ, которым я нашел, - назначить унаследованный класс для слушателя объекта, и он работал отлично.
Где OpenCamera() живут? Можете ли вы включить этот код в сообщение? –
вам нужно создать экземпляр класса, в котором принадлежит OpenCamera, а затем вызвать OpenCamera на этом объекте. –
Эта ошибка является странной, если вы используете функцию экземпляра, поскольку вы отправили какой-либо нестатический член, который должен быть уже доступен, поскольку «это» предполагается, когда экземпляр явно не используется. Добавьте больше кода, чтобы понять, почему эта ошибка может произойти (как минимум, функция OpenCamera). – Gusman