Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
cyt_
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 5
#1

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

15.09.2013, 11:34. Просмотров 1199. Ответов 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, для настроек различных объектов?
http://www.cyberforum.ru/android-dev/thread1096565.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 11:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Шаблон Preferences Framework для различных объектов (Программирование Android):

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

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

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

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

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

6
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
16.09.2013, 15:32 #2
Можно.

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

Java
1
2
3
PreferenceManager prefMgr = getPreferenceManager();
prefMgr.setSharedPreferencesName("btn_preferences_" + id);
prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE);
Получится для каждой кнопки свой файл с настройками с одним шаблоном.
0
cyt_
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 5
16.09.2013, 16:53  [ТС] #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);
?
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
16.09.2013, 17:02 #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);
0
cyt_
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 5
16.09.2013, 20:50  [ТС] #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);
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
17.09.2013, 02:28 #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);
1
cyt_
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 5
18.09.2013, 22:36  [ТС] #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>
0
18.09.2013, 22:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2013, 22:36
Привет! Вот еще темы с решениями:

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

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

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

Сохранение Shared Preferences на sd карту
Всем привет, у меня вопрос очень прост. Может здесь найду внятный ответ ибо на...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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