У меня есть пользовательский вид, который расширен с RelativeLayout.Пользовательское представление как singleton в Android
Я хотел попытаться сделать этот пользовательский вид в качестве одноэлементного.
У меня есть этот код:
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);
не допускается.
Любая помощь будет очень признательна.
«Я хотел попытаться сделать этот пользовательский вид как одноэлементный» - вы будете утечки памяти (делая одноэлемент опасным), и представление не будет работать в других действиях (что делает одноэлементным бесполезным). Я настоятельно рекомендую вам придумать другой план. Помимо этого, используйте LogCat для проверки трассировки стека Java, связанной с вашими сбоями: https://stackoverflow.com/questions/23353173/unappro-myapp-has-stopped-how-can-i-solve-this Если вы не понимаете трассировку стека, отредактируйте свой вопрос и опубликуйте его. – CommonsWare
Хорошо, спасибо за ваш ответ #CommonsWare. Я знал, что синглтон не был хорошим выбором, но я экспериментировал с одним сингл-представлением в андроиде. – JWL