반응형
안드로이드(Android) PreferenceActivity 에서 addPreferenceFromResource 함수사용시Deprecated 해결 |
환경 : Eclipse Mars, Android 4.2.2 |
▼ 버전없이 되면서 PreferenceActivity 클래스에서 addPreferenceFromResource 함수는 Deprecated 되었습니다. 이부분을 해결하기 위해 PreferenceFragment 클래스를 사용해야 합니다.
▼ PreferenceFragment 를 사용받은 클래스에 addPreferenceFromResource 함수를 사용해서 옵션 컨트롤들을 셋팅한 xml 리소스를 읽어들입니다.
// PreferenceFragment 클래스 사용
public static class MyPreferenceFragment extends
PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting_default);
}
}
▼ 이렇게 만들어진 클래스를 onCreate 생성함수에서 getFragmentManager() 사용해 트랜젝션을 수행하면 됩니다. 권고사항으로 클래스를 만들어 리소스 xml 을 읽어 들이는 이유는 파일이기 때문입니다. 이렇게 하지 않으면 파일을 읽는 도중 에러가 발생해서 다 읽어들이지 못할 때 전체를 롤백하지 않고 일부만 셋팅하게 되겠죠. 트랜젝션은 이런 문제를 해결할수 있습니다. 아래는 deprecated 를 해결한 전체소스 내용입니다.
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
public class PreferenceSetting extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager()
.beginTransaction()
.replace(android.R.id.content,
new MyPreferenceFragment()).commit();
}
// PreferenceFragment 클래스 사용
public static class MyPreferenceFragment extends
PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting_default);
}
}
}
반응형
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) 스마트폰 가로, 세로 상태 알아내는 방법 (1) | 2015.05.28 |
---|---|
안드로이드(Android) Genymotion 지니모션 이클립스에서 프로젝트 연결하는 방법 (1) | 2015.05.27 |
안드로이드(Android) Genymotion 지니모션 설치와 이클립스 플러그인 설치해서 연결 (1) | 2015.05.19 |
[Android] 안드로이드 레이아웃 gravity, layout_gravity 가 적용이 안되는 경우 해결 (0) | 2015.05.15 |
안드로이드(Android) EditTextPreference 이용해서 옵션값 셋팅하는 방법 (1) | 2015.04.20 |
안드로이드(Android) PreferenceActivity 이용해서 사용자 정보 셋팅과 정보가져오기 (0) | 2015.03.26 |
안드로이드(Android) 스마트폰 맥주소(Mac Address) 확인하는 방법 (1) | 2015.03.09 |
안드로이드(Android) GPS 로 현재 이동 속도 알아오기 (5) | 2015.03.05 |