Главная » Разработка для Android » Знакомство с Активностью для управления настройками

0

Класс PreferenceActivity используется для хранения иерархии настроек, которые заданы с помощью файла  XML. Чтобы создать новую Активность настроек, наследуйте класс PreferenceActivity, как показано ниже:

public class MyPreferenceActivity extends PreferenceActivity {

}

Чтобы заполнить настройки, переопределите обработчик onCreate и вы- зовите метод addPreferencesFromResource, как показано в следующем фраг- менте:

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences);

}

Как и любая другая, Активность настроек должна быть включена в мани- фест приложения:

<activity android:name=".MyPreferenceActivity" android:label="My Preferences">

</activity>

Это все, что требуется для реализации простой Активности настроек. Что- бы отобразить  настройки приложения, хранящиеся в этой Активности, вы- зовите метод startActivity или startActivityForResult:

Intent i = new Intent(this, MyPreferenceActivity.class);

startActivityForResult(i, SHOW_PREFERENCES);

Поиск и использование Экрана настроек с Общими настройками

Значения Общих настроек, записанные для пунктов, которые присутству- ют в Активности настроек, хранятся в Контексте (Context) приложения. Это позволяет  любому компоненту  приложения, включая  Активности,  Сервисы и Приемники широковещательных намерений, получать  доступ к значениям, как показано в следующем фрагменте:

Context context = getApplicationContext(); SharedPreferences prefs =

PreferenceManager.getDefaultSharedPreferences(context);

// TODO Получать значения с помощью методов get<тип>.

Введение в отслеживание изменений в Общих настройках

Класс onSharedPreferenceChangeListener может быть реализован для вызова callback-метода в момент добавления, удаления или изменения кон- кретной Общей настройки.

Это особенно удобно в случае с Активностями и Сервисами, которые ис- пользуют фреймворк Общих настроек для установки настроек приложения. Используя этот обработчик, компоненты вашего приложения могут следить за изменениями в настройках, установленных пользователем, и обновлять пользовательский интерфейс или корректировать поведение  программы, если потребуется.

Зарегистрируйте обработчик onSharedPreferenceChangeListener, при- менив  Общие настройки,  за которыми  вы хотите  следить.  Реализация onSharedPreferenceChanged показана в листинге 6.4.

Листинг 6.4. Реализация каркаса onSharedPreferenceChanged

public class MyActivity extends Activity implements

OnSharedPreferenceChangeListener {

@Override

public void onCreate(Bundle SavedInstanceState) {

// Регистрируем этот OnSharedPreferenceChangeListener Context context = getApplicationContext(); SharedPreferences prefs =

PreferenceManager.getDefaultSharedPreferences(context);

prefs.registerOnSharedPreferenceChangeListener(this);

}

public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {

// TODO Проверять общие настройки, ключевые параметры и изменять UI

// или поведение приложения, если потребуется.

}

}

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии