반응형
Fragment Deprecated
안드로이드 버전 업되면서 Deprecated ... 에휴
아래 메소드의 파라메터인 Fragment 에 취소선이 보이네요.
마우스를 가져다가 대면 android.app.Fragment is deprecated... 라고
public static final int PERMISSIONS_REQUEST_CODE = 1;
public static boolean isPermissionGranted(Activity activity, Fragment fragment) {
if (!allPermissionsGranted(activity)) {
FragmentCompat.requestPermissions(fragment, getRequiredPermissions(activity), PERMISSIONS_REQUEST_CODE);
return true;
}
return false;
}
import 가 뭐로 되어있나 봤더니.
import android.app.Fragment;
이거를 아래 처럼 바꿉니다.
//import android.app.Fragment;
import android.support.v4.app.Fragment;
그럼 isPermissionGranted 도 바꿔야겠죠.
public static final int PERMISSIONS_REQUEST_CODE = 1;
public static boolean isPermissionGranted(Activity activity, Fragment fragment) {
if (!allPermissionsGranted(activity)) {
// FragmentCompat.requestPermissions(fragment, getRequiredPermissions(activity), PERMISSIONS_REQUEST_CODE);
fragment.requestPermissions(getRequiredPermissions(activity), PERMISSIONS_REQUEST_CODE);
return true;
}
return false;
}
FragmentCompat 을 안쓰고 fragment 가 self 로 쓰고있네요.
이런건 어떻게 알고 바꿀까요?
마우스를 가져다 대면 나오는 'android.app.Fragment is deprecated' 를 검색.
안드로이드 doc 에서 대신 뭐를 쓰라는 내용이 나옵니다.
그 클래스를 검색해서 보면 requestPermissions 라는 메소드가 어떻게 써야 하는지 나오죠.
근데 문제는 또 있습니다.
이렇게 바꿨더니, 바꾸기 전 메소드를 호출하는 쪽에서 오류가 납니다.
저걸 호출하는 Fragment 도 import android.app.Fragment; 였죠.
이것도 바꿔줍니다.
//import android.app.Fragment;
import android.support.v4.app.Fragment;
그랬더니 또 이 Fragment 를 호출하는 쪽에서 오류가 나죠.
그래서 또 위와 같이 import 를 바꿔줬죠.
또, 다른 오류가 이어집니다.
이건 아래와 같이 바꿉니다.
getSupportFragmentManager().beginTransaction().replace(R.id.container_detect, fragment).commit();
여기까지 바꾸니까 이제 제대로 실행되고 deprecate 어쩌고 warning 메시지도 안뜨네요.
버전업 하면 뭔가 좋아지긴 하는건지, 그냥 문법만 바뀌는건지, -0-
728x90
반응형
'Android' 카테고리의 다른 글
[Android] Activity Full Screen 만들기 ( 전체화면 ) (0) | 2019.08.31 |
---|---|
[Android] Light Sensor 라이트 센서 (조도 측정) (0) | 2019.08.11 |
[Android] MsSQL Server 연동하기 (8) | 2019.05.09 |
[android] 화면간 값 전달 Activity intent parameter (0) | 2019.02.27 |
[android] 하드코딩 하지않는 CODE 관리 (0) | 2019.02.27 |
댓글