이 코드에 문제가 있습니다. 내 응용 프로그램에서 환경 설정 값을 유지하고 싶지만 청취자에게 문제가 있습니다. 작동하지 않습니다, 그것은 새로운 가치를 저장하지 않습니다. 오류 (들)에 대한 아이디어?청취자 sharedpreferences
편집 : onResume()
내 앱에서 활동을 열고 닫을 때 작동하기 때문에 sharepreferences의 값이 정확합니다. 대화 상자와 활동은 값을 유지하지 않습니다.
public void onCreate(){
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String listpref) {
if(!preferencesChanged)preferenze();
}
};
sp.registerOnSharedPreferenceChangeListener(listener);
인 텐트가 호출하는 일부 버튼 및 기타 정보 활동이 있습니다.
배열에서 값을 표시하고 아무 것도 표시하지 않는 TextView입니다.
public void onPause() {
super.onPause();
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.unregisterOnSharedPreferenceChangeListener(listener);
protected void onResume() {
super.onResume();
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String listpref) {
preferencesChanged = true;
}
};
sp.registerOnSharedPreferenceChangeListener(listener);
protected void onStop(){
super.onStop();
if(preferencesChanged){
//Update the app
preferenze();
}
public void preferenze()
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
CheckboxPreference = prefs.getBoolean("checkboxPref", true);
ListPreference = prefs.getString("listpref", "");
기타 변수와 대부분/else.
preferences.xml로 :
public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.preferences);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String listpref) {
당신'에서 onCreate()'메소드를 호출하는거야? –
코드 끝 부분에있었습니다. 방금 업데이트했습니다. –
은 전체 클래스 코드를 편집 할 수 있으므로 –