Предпочтения числа в предпочтительном действии в Android

То, что я хочу сделать, я работаю над игрой жизненной программы. Я хочу взять задержку и сделать ее предпочтением, но я хочу сделать ее доступной, чтобы люди ввели в определенное время. Число может быть в миллисекундах или секунды.

Однако я немного застреваю о том, как продолжить двигаться, я не смог найти простое предпочтение, которое уже обрабатывает это, но мог бы быть тот. Существует ли простой способ сделать это предпочтение и подтвердить, что вводимые данные являются целым числом или на плаву?

40
задан Jon Limjap 9 July 2010 в 03:51
поделиться

1 ответ

Если вы используете PreferenceActivity, что, скорее всего, так и есть, то такой компонент недоступен.

Вам нужно будет сделать что-то вроде этого:

    /**
 * Checks that a preference is a valid numerical value
 */
Preference.OnPreferenceChangeListener numberCheckListener = new OnPreferenceChangeListener() {

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        //Check that the string is an integer.
        return numberCheck(newValue);
    }
};

private boolean numberCheck(Object newValue) {
    if( !newValue.toString().equals("")  &&  newValue.toString().matches("\\d*") ) {
        return true;
    }
    else {
        Toast.makeText(ActivityUserPreferences.this, newValue+" "+getResources().getString(R.string.is_an_invalid_number), Toast.LENGTH_SHORT).show();
        return false;
    }
}


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

    //get XML preferences
    addPreferencesFromResource(R.xml.user_preferences);


    //get a handle on preferences that require validation
    delayPreference = getPreferenceScreen().findPreference("pref_delay");

    //Validate numbers only
    delayPreference.setOnPreferenceChangeListener(numberCheckListener);

}
17
ответ дан 27 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: