Использование настроек Android и не показывать переменную пользователю - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть реализация sharedPreferences, где я храню настройки пользователя.Когда пользователь нажимает «настройки» в меню, я открываю стандартный редактор, чтобы позволить пользователю изменять настройки.Это код:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
    case R.id.MENU_PREFERENCES:
        Intent intent = new Intent(context, PreferencesActivity.class);
        startActivity(intent);
        return true;
    case xx:
                ....
    }
    Toast.makeText(this, "ERROR: Bad menu item", Toast.LENGTH_SHORT).show();
    return true;
}

В PreferencesActivity.java у меня есть:

public class PreferencesActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }



}

У меня вопрос, могу ли я иметь переменную в настройках для внутреннего использования, я имею в виду, чтоне будет показано пользователю, когда startActivity (намерение)?как?

Полагаю, мне нужно что-то изменить в файлеferences.xml, но я не знаю точно, что ....

спасибо

РЕДАКТИРОВАТЬ: по запросу я вставляю xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <PreferenceCategory>
        <ListPreference android:title="Pomodoro duration" android:key="pomodoro_duration" android:summary="Duration of each pomodoro" android:entryValues="@array/array_duration_values" android:defaultValue="25" android:entries="@array/array_duration"/><ListPreference android:key="short_break_duration" android:title="Short break duration" android:summary="Duration of break after each pomodoro" android:entryValues="@array/array_duration_values" android:entries="@array/array_duration" android:defaultValue="5"/>
        <ListPreference android:title="Long break interval" android:summary="Interval of the longer break" android:key="intervalos" android:entryValues="@array/interval_array_values" android:defaultValue="4" android:entries="@array/interval_array"/>
        <ListPreference android:defaultValue="20" android:title="Long break duration" android:summary="Duration of break after each pomodoro" android:key="long_break_duration" android:entries="@array/array_duration" android:entryValues="@array/array_duration_values"/><RingtonePreference android:title="Notification sound" android:ringtoneType="notification" android:summary="Tone that will sound after pomodoro ends" android:key="notification_tone" android:showDefault="true" android:showSilent="true"/>
        <ListPreference android:summary="Period used to calculate productivity" android:title="Calculus period" android:key="calculus_period" android:entryValues="@array/array_calculo_valores" android:entries="@array/array_calculo"/>
      </PreferenceCategory>

</PreferenceScreen>

Когда я ввожу стандартный пользовательский интерфейс, позволяющий пользователю устанавливать эти переменные, я хотел бы скрыть одну из них программно.Возможно?

1 Ответ

1 голос
/ 18 ноября 2011

Если его нет в файле Preferences.xml, он не будет отображаться, поэтому просто не добавляйте его туда.Вы можете использовать класс SharedPreferences для получения / установки настроек без отображения пользовательского интерфейса.Что-то вроде:

SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(context);
boolean flag = prefs.getBoolean("flag", false);
...