Android의 간단한 응용 프로그램 (1) -Preference Fragment 응용 프로그램 설정
13942 단어 Preference
종류
fragment를 저장할 수 있는 주 Activity
Preference Fragment
settings 하나.xml에 설정된 변수를 저장합니다.
2. 구체적인 코드
activity 코드는 다음과 같습니다.
public class MainActivity extends Activity{
private SharedPreferences sp;
private OnSharedPreferenceChangeListener listener;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new ConfigFragment()).commit();// Fragment。
sp = PreferenceManager.getDefaultSharedPreferences(this);// ,
Log.d("CPACM",sp.getBoolean("autoBack", false)+ sp.getString("et1", "cpacm"));
listener = new OnSharedPreferenceChangeListener(){//SharedPreferences
@Override
public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) {
Log.d("CPACM","change");
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, key, Toast.LENGTH_LONG).show();// SharedPreferences , toast.
}
};
sp.registerOnSharedPreferenceChangeListener(listener);
}
}
주의: Shared Preferences는 WeakHashMap에서 감청을 유지하고 있습니다.이것은 익명의 내부 클래스를 감청기로 사용할 수 없다는 것을 의미한다. 왜냐하면 현재 범위를 벗어나면 회수하는 목표가 되기 때문이다.그것은 먼저 작동하지만, 결국에는 회수되고, WeakHashMap에서 제거된 후에 작업이 중단될 것이다.클래스의 한 위치에서 감청기를 인용하면 됩니다. 클래스를 제공하는 실례도 소각되지 않습니다.
PreferenceFragment 코드는 다음과 같습니다.
public class ConfigFragment extends PreferenceFragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);// ,
}
}
settings.xml 파일
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:defaultValue="true"
android:key="autoBack"
android:summaryOff=" "
android:summaryOn=" "
android:title=" " />
<PreferenceCategory android:title="SMS " >
<CheckBoxPreference
android:defaultValue="false"
android:key="smsSilence"
android:summaryOff=" "
android:summaryOn=" "
android:title=" " />
<PreferenceScreen android:title=" " >
<CheckBoxPreference
android:defaultValue="true"
android:key="cb21"
android:summaryOff=" "
android:summaryOn=" "
android:title=" 1" />
<CheckBoxPreference
android:defaultValue="true"
android:key="cb22"
android:summaryOff=" "
android:summaryOn=" "
android:title=" 2" />
<ListPreference
android:dialogTitle=" "
android:entries="@array/entries_list_preference"
android:entryValues="@array/entriesvalue_list_preference"
android:key="list1"
android:summary=" "
android:title="android forum" />
<EditTextPreference
android:defaultValue="Hello EditTextPreference"
android:dialogTitle=" "
android:key="et1"
android:summary=" "
android:title="EditTextPreference Sample" />
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title=" " >
<RingtonePreference
android:key="rt1"
android:summary=" "
android:title="RingtonePreference Sample" />
</PreferenceCategory>
</PreferenceScreen>
그 중에서android:key,SharedPreferences에 대응하는 키입니다.
arrays.xml의 값:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="entries_list_preference">
<item>www.anddev.org</item>
<item>www.eoeandroid.com</item>
<item>developer.android.com</item>
</string-array>
<string-array name="entriesvalue_list_preference">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
</resources>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 데이터 저장 소 (1) Preference 사용응용 장 소 는 주로 데이터 가 비교적 적은 설정 정보 입 니 다.이것 은 XML 프로필 에 데 이 터 를 '키 · 값' (Map) 으로 저장 합 니 다.예 를 들 어 우 리 는 휴대 전화 켜 기 인사말 을 설정 하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.