Intereting Posts

Как сделать только чтение (программно заполнено) Предпочтения?

Как сделать элементы Preferences с программно заполненными значениями (например: Версия, Номер модели …)?

Solutions Collecting From Web of "Как сделать только чтение (программно заполнено) Предпочтения?"

Вы можете установить настройки внутри вашего кода и проверить, заполнено ли оно до его заполнения. Пока вы не предоставляете пользователям доступ к изменению этой информации, все, что они могут сделать, это «очистить локальные данные», что заставит программу повторно заполнить данные, если вы сделаете это правильно.

Я использую эту технику для хранения уникальных идентификаторов для устройства, которые вошли в систему и т. Д. Пользователь даже не (и никогда не должен знать), что я отслеживаю, все, что они знают, у них есть плавная программа, которая делает то, что они Нужно это делать.

Пример:

SharedPreferences settings = context.getSharedPreferences("preferanceName", 0); SharedPreferences.Editor editor = settings.edit(); int value = foo; editor.putInt("ValueToStore", value); editor.commit(); 

Почему бы не использовать android.preference.Preference напрямую?

 <Preference android:key="version" android:title="@string/version" /> 

Нет диалогового окна редактирования, больше атрибутов и информации!

 //Set the version string in your code findPreference("version").setSummary(version); 

Я сделал это со следующим:

В моем приложении application_preferences.xml у меня есть следующее предпочтение. Это делает его так, что он все еще черный (не серый), но пользователь не может редактировать его. Сделать серый цвет затрудняет чтение.

 <EditTextPreference android:key="version" android:title="@string/version" android:enabled="false" android:selectable="false" android:persistent="false" android:shouldDisableView="false"/> 

В режиме предпочтения onCreate, получите предпочтение версии и задайте заголовок для версии приложения.

 EditTextPreference versionPref = (EditTextPreference)findPreference("version"); String version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; versionPref.setTitle(getString(R.string.version) + ": " + version); 

Кевин Вествуд – это отличное спасибо!

В моем случае я просто меняю setTitle на setSummary , поэтому значение видно ниже.

  String serverUrl = "http://..."; EditTextPreference pref = (EditTextPreference)findPreference("serverPrefKey"); pref.setSummary(serverUrl);