Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
cyt_
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 5
#1

Шаблон Preferences Framework для различных объектов - Программирование Android

15.09.2013, 11:34. Просмотров 1032. Ответов 6
Метки нет (Все метки)

Всем привет.
Есть десять кнопок.
При нажатии на каждую из них должно открываться свое меню настроек (надпись, размер и так далее).
Шаблон меню создал res/xml/prefs.xml (с помощью Preferences Framework).
Проблема в том, что для всех кнопок открывается одно и то же меню.
Например, для первой кнопки вводишь надпись "Кнопка 1", и эта надпись оказывается в параметрах у всех кнопок.

prefs.xml
Java
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android" >        
    <PreferenceCategory 
        android:title="@string/title">      
        <EditTextPreference 
                    android:key="key"
            android:title="title"
            android:summary="summary" />        
            ...
</PreferenceScreen>
Класс меню:
Java
1
2
3
4
5
6
7
8
9
10
public class ButtonPrefs extends PreferenceActivity
{   
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs);
    }
        
}
При клике на кнопку:
Java
1
2
Intent i = new Intent(getApplicationContext(), ButtonPrefs.class);
startActivity(i);
Можно ли все-таки использовать один шаблон, созданный через Preferences Framework, для настроек различных объектов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 11:34     Шаблон Preferences Framework для различных объектов
Посмотрите здесь:

Preferences Framework: ActionBar - Программирование Android
Всем привет! Недавно начал изучать Android. При написании программы я пользовался Preferences Framework. Но Preferences Framework не...

Ошибка в Preferences Framework - Программирование Android
Недавно начал изучать программирование под андроид и столкнулся с проблемой. Я создал xml с настройками через Preferences Framework, создал...

Свои компоненты в Preferences для выбора времени, даты, числа, цвета - Программирование Android
Гуру, посоветуйте... начал гуглить и везде только &quot;полуфабрикаты&quot;... Надо сделать настройки максимально сложные и максимально...

Preferences - Программирование Android
Как проверить были ли хотя бы раз хранены данные с помощью Preferences

Preferences - Программирование Android
Доброго всем дня. В android только начинаю разбираться. Пытаюсь сохранить настройки по уроку...

Preferences из Applicaton - Программирование Android
Нужно еще до открытия формы (в Application) получать и сохранять настройки. Пока работаю с текстовиком. Теоретически могу...

Preferences работает не корректно - Программирование Android
изучаю андроид по учебнику Рето Майера. Дошел до темы создания меню настроек. делаю все по примеру но почему то программа работает не...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
16.09.2013, 15:32     Шаблон Preferences Framework для различных объектов #2
Можно.

Для начала нужно передать в ButtonPrefs какой-нибудь идентификатор текущей кнопки, например номер.
Получив в методе onCreate этот идентификатор (id) использовать не дефолтный файл для сохранения настроек.

Java
1
2
3
PreferenceManager prefMgr = getPreferenceManager();
prefMgr.setSharedPreferencesName("btn_preferences_" + id);
prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE);
Получится для каждой кнопки свой файл с настройками с одним шаблоном.
cyt_
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 5
16.09.2013, 16:53  [ТС]     Шаблон Preferences Framework для различных объектов #3
Цитата Сообщение от Netscape Посмотреть сообщение
Можно.

Для начала нужно передать в ButtonPrefs какой-нибудь идентификатор текущей кнопки, например номер.
Получив в методе onCreate этот идентификатор (id) использовать не дефолтный файл для сохранения настроек.

Java
1
2
3
PreferenceManager prefMgr = getPreferenceManager();
prefMgr.setSharedPreferencesName("btn_preferences_" + id);
prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE);
Получится для каждой кнопки свой файл с настройками с одним шаблоном.
А каким способом можно идентификатор передать, если intent формируется как:
Java
1
Intent i = new Intent(getApplicationContext(), ButtonPrefs.class);
?
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
16.09.2013, 17:02     Шаблон Preferences Framework для различных объектов #4
Java
1
2
Intent i = new Intent(getApplicationContext(), ButtonPrefs.class);
i.putExtra("btn_id", id); // id - номер кнопки
в ButtonPrefs в методе onCreate
Java
1
int id = getIntent().getIntExtra("btn_id", -1);
cyt_
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 5
16.09.2013, 20:50  [ТС]     Шаблон Preferences Framework для различных объектов #5
Цитата Сообщение от Netscape Посмотреть сообщение
Java
1
2
Intent i = new Intent(getApplicationContext(), ButtonPrefs.class);
i.putExtra("btn_id", id); // id - номер кнопки
в ButtonPrefs в методе onCreate
Java
1
int id = getIntent().getIntExtra("btn_id", -1);
Ах, точно! Забыл совсем про extras!
Спасибо, попробую!

Добавлено через 3 часа 44 минуты
Возник попутный вопрос. Как прочитать значения из файла настроек?
Java
1
2
3
PreferenceManager prefMgr = getPreferenceManager();
prefMgr.setSharedPreferencesName("btn_preferences_" + id);
prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE);
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
17.09.2013, 02:28     Шаблон Preferences Framework для различных объектов #6
Java
1
2
3
public static final String PREF_FILE_NAME = "btn_preferences_1";
SharedPreferences preferences = context.getSharedPreferences(PREF_FILE_NAME, MODE_WORLD_READABLE);
boolean b = prefs.getBoolean("key", true);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2013, 22:36     Шаблон Preferences Framework для различных объектов
Еще ссылки по теме:

Чтение preferences в BroadcastReceiver - Программирование Android
Доброго времени суток. Сам смысл того что я делаю: есть активити, которая отображает состояние батареи, есть активити настроек и есть...

Ошибка в Preferences в Android 4.4 - Программирование Android
Здравствуйте! Не могу понять суть ошибки, на всех версиях Android 2.2+ программа выполнялась корректно, до выхода Kit kat... У меня в...

Как получить preferences из broadcast reciver? - Программирование Android
Здравствуйте! Активити сохраняет данные в SharedPreferences. Данные нужно получить из класса, наследующего BroadcastReceiver....

Где найти Preferences в Android Studio 1.2.2 - Программирование Android
Window &gt; Preferences &gt;Android &gt; Build. Где найти Preferences в Android Studio 1.2.2 Нужно создать SHA1-значение ключа, которым будет...

Нужно сохранить 2000 бит посредством Preferences - Программирование Android
Изощренная постановка. кроме как написать какой нить string есть варианты?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
cyt_
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 5
18.09.2013, 22:36  [ТС]     Шаблон Preferences Framework для различных объектов #7
Я не совсем про это.
Вот, например, у меня в файле настоек есть такой код (prefs.xml):
XML
1
2
3
4
5
...
<Preference 
android:key="@string/button_name"
android:layout="@layout/button" />  
...
Как мне найти этот элемент в классе ButtonPrefs?
Java
1
button = (Button) findViewById(R.id.button);
возвращает null

layout/button.xml выглядит так:
XML
1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>
<Button 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</Button>
Yandex
Объявления
18.09.2013, 22:36     Шаблон Preferences Framework для различных объектов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru