Проверьте и отформатируйте значение строки настроек, прежде чем вернуться к настройкам - PullRequest
0 голосов
/ 20 января 2011

У меня есть EditTextPreference. После того, как пользователь отредактировал предпочтение и нажал ok, я хочу проверить значение ошибок форматирования перед фиксацией.

public class Preferences_Default extends PreferenceActivity implements OnSharedPreferenceChangeListener  {

     @Override
     protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);

             addPreferencesFromResource(R.layout.prefs_default);
    }  
}

 @Override
     protected void onResume() {
         super.onResume();

         // Set up a listener whenever a key changes            
         getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
     }

    @Override
    protected void onPause() {
        super.onPause();

        // Unregister the listener whenever a key changes

getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);    

    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        //This just calls a function to update the Pref Summary
        Preference pref = findPreference(key);
        initSummary(pref);

    }

Куда бы я положил вызов функции, которая проверяет значение, и каков код для повторной фиксации значения предпочтения в случае его изменения.

1 Ответ

2 голосов
/ 20 января 2011

Друг, как вы только что указали, вы должны проверить это в своем коде: вы должны поместить его в первую строку, прежде чем он будет обновлен

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
//function to check 

 boolean b=check();

  //This just calls a function to update the Pref Summary 

if(b)
{    
Preference pref = findPreference(key);
    initSummary(pref);}

else{
//whatever you want to do show error
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...