2014-02-07 3 views
0

Я хотел бы создать расширение SharedPreferences с Android, так что я могу создать некоторые специальные методы, такие как:Я хочу, чтобы расширить класс SharedPreferences в Android

getBoolean (int KeyFromStringTable, boolean defValue); 

, а не печатала:

getBoolean (getString (R.string.KeyString), defValue); 

каждый раз.

Однако SharedPreferences не является классом, это интерфейс (dang). Кто-нибудь имеет предложение о том, как добавить некоторые функции в SharedPreferences?

+0

использовать узор декоратора. – njzk2

ответ

1

Создайте обертку, содержащую ваш SharedPreferences и добавьте вспомогательные методы.

Или создайте статические методы-помощники где-нибудь.

Или создайте свою собственную реализацию SharedPreferences, возможно, путем разметки существующей реализации. Есть много недостатков этого подхода, не в последнюю очередь из-за того, что вы не можете заставить Android использовать вашу реализацию, то есть места, где он извлекает SharedPreferences (например, экраны предпочтений), он не будет использовать ваши. Кроме того, вам нужно будет отслеживать изменения исходной реализации, если любые из этих изменений будут иметь отношение к вашей вилке.

Или создайте своего рода макрос клавиатуры, который сохранит вам ввод.

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

+0

Я думаю, нашел ответ в другом вопросе: создайте класс, который инкапсулирует интерфейс в общие настройки. Делая это, я могу добавить методы в класс с поведением, которое я хочу. Он все еще строится, но я оптимист. – Rich

+0

Я думаю, что это решение в основном то, что вы рекомендуете в пунктах 1 и 2. – Rich

+0

@Rich: В основном первый вариант. – CommonsWare

Смежные вопросы