Страница 1 из 3

Урок 71. Preferences как настройки приложения. PreferenceActivity

Добавлено: 19 апр 2012, 00:00
damager82
В этом уроке:
- используем Preferences для работы с настройками приложения


Click here to read this article!

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 31 май 2012, 08:51
Prospekt
sp = PreferenceManager.getDefaultSharedPreferences(this);
А если в одном приложении может быть несколько активити-настроек, как к ним получить доступ?

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 31 май 2012, 16:59
damager82
Prospekt писал(а):
sp = PreferenceManager.getDefaultSharedPreferences(this);
А если в одном приложении может быть несколько активити-настроек, как к ним получить доступ?
mi.setIntent(new Intent(this, PrefActivity.class));
Здесь указываете другой Activity-класс

Или не в этом вопрос?

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 31 май 2012, 17:16
Prospekt
Наверное всетаки не в этом. Как вызвать Активити с настройками, я понял. А вот как получить значение установок я не понял. Предположим у нас есть 2 разных активити с настройками PreAct1 и PreAct2. Метод PreferenceManager.getDefaultSharedPreferences(this); возвращает (как я понимаю) настройки (значения) либо первой активити либо второй. Например в первой есть текстовые поля "name" и "login", а во второй тектовые поля "id" и "name". Если сделать так:

sp = PreferenceManager.getDefaultSharedPreferences(this);
String name = sp.getString("name", "");

Что будет находиться в переменной (объекте) name? Значение name PreAct1 или значение name PreAct2.

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 31 май 2012, 17:26
damager82
Prospekt писал(а):Что будет находиться в переменной (объекте) name? Значение name PreAct1 или значение name PreAct2.
Я не проверял, но думаю, что если PreAct1 и PreAct2 оба содержат поле name, то они оба и будут работать с параметром name из PreferenceManager.getDefaultSharedPreferences.

Т.е. на экране PreAct1 написали в name значение value. Открываем PreAct2 и видим это же значение. Т.е. поля два, а значение одно.

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 31 май 2012, 22:03
romanzi
Уже несколько дней бьюсь с проблемой:
Есть 2 активности. 1 активность должна читать ключи, другая читать и записывать их.
Первая активность не загружает информацию из ключа "number",а вторая (где он и создавался) - наоборот выгружает и всё ок.

Код: Выделить всё

SharedPreferences save;
save = getPreferences(MODE_WORLD_WRITEABLE); 
Editor ed = save.edit();
key = save.getInt("number", 0);
В двух активностях этот код и даже переменные одинаковы.

Я уже устал решать это(

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 01 июн 2012, 07:42
KamiSempai
Вот тема где я про это уже писал: Настройки приложения

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 01 июн 2012, 08:41
romanzi
Спасибо,мужик!!
Получилось!!
Спс большое!!!
Обожаю Ваш сайт. Ща кину денег Вам :)

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 03 июн 2012, 20:25
romanzi
Как удалить данные из ключа?

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 04 июн 2012, 07:10
KamiSempai
romanzi писал(а):Как удалить данные из ключа?
Что бы понять как это сделать, достаточно посмотреть на список методов SharedPreferences.Editor.

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

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 29 июн 2012, 09:56
Mikhail_dev
Здравствуйте. Такой вопрос. Зачем использовать метод addPreferencesFromResource , если он объявлен как

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 29 июн 2012, 15:49
damager82
no-- писал(а):Здравствуйте. Такой вопрос. Зачем использовать метод addPreferencesFromResource , если он объявлен как
Чето вы не договариваете ...

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 29 июн 2012, 17:00
KamiSempai
damager82 писал(а):Чето вы не договариваете ...
Мхатовскую паузу выдерживает :)
Я, как главный телепат форума, предположу, что он имеет ввиду пометку "Deprecated".

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 11 июл 2012, 17:29
Mikhail_dev
Извиняюсь. Торопился при написании и не заметил что курсор потерял при переводе на другой язык. Да, он объявлен как Deprecated. Вроде как сейчас советуют использовать другой подход. Названия не помню к сожалению.

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 12 июл 2012, 09:37
damager82
no-- писал(а):Извиняюсь. Торопился при написании и не заметил что курсор потерял при переводе на другой язык. Да, он объявлен как Deprecated. Вроде как сейчас советуют использовать другой подход. Названия не помню к сожалению.
Есть такое. Это в Android 3 куча нового появилась. Позже все это буду рассказывать.

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 30 авг 2012, 20:44
neoksi
Честно, мозг сломал, пока понимал логику действия этой штуки =). Хотя она меня привлекла только тем, что автоматом строит из xml активити настроек. Сами настройки храню в SQLite, но для вывода и их редактирования хочу использовать Preferences.

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 27 окт 2012, 01:15
brucemax
Вот я "молодец"!! Два месяц назад велосипед изобрёл. Надо мне были подобные настройки.. так я их через ListView лепил.. с кучами методов и всего остального.. А тут все готовое есть. Только у меня было много полей, где по по нажатию диалог открывался с одиночным выбором. А как этим способом такое реализовать не подскажите?

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 18 ноя 2012, 09:57
tolik777
Добрый день.
У меня в настройках приложения используются XML данные. Использовал PreferenceFragment по вот этому примеру
Теперь возникла такая задача, чтобы в этих же настройках использовать одну переменную для внешнего устройства и необходимо сделать так, чтобы при установке данной переменной в настройках, вызывался обработчик, по которому включался Bluetooth и эта переменная отправлялась для записи во Flash память микроконтроллера.
Запись во Flash реализовал, отправку данных по Bluetooth также, а вот с PreferenceFragment что то не получается. Отдельное активити делать не хочется, подскажите как с помощью PreferenceFragment такое реализовать? Т.е. мне нужен сам код обработчика.
Вот мой код:

Код: Выделить всё

package com.example.test1;

import android.app.Activity;
import android.os.Bundle;

public class SetPreferenceActivity extends Activity {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
	// TODO Auto-generated method stub
	super.onCreate(savedInstanceState);
  
	getFragmentManager().beginTransaction().replace(android.R.id.content,
                new PrefsFragment()).commit();
	}
}
Ключ переменной в XML: pref_pwmMax, EditTextPreference.

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 19 ноя 2012, 17:32
damager82
tolik777 писал(а):Т.е. мне нужен сам код обработчика.
Ключ переменной в XML: pref_pwmMax, EditTextPreference.
Код onCreate в фрагменте:

Код: Выделить всё

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		addPreferencesFromResource(R.xml.pref);
		Preference pref = findPreference("pref_pwmMax");
		pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
			public boolean onPreferenceChange(Preference preference, Object newValue) {
				//TODO Ваш код
				return true;
			}
		});
	}
Это?

Re: Урок 71. Preferences как настройки приложения. Preferenc

Добавлено: 20 ноя 2012, 10:50
tolik777
Ага спасибо! Почти это... но подтолкнули в нужном направлении.