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

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

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

Как в пункте сис. настроек в кратком описании (summary) указывать свое значение? - Android

03.10.2013, 16:19. Просмотров 642. Ответов 3
Метки нет (Все метки)

Не знаю как правильно объяснить, но мне надо в пункте настроек в кратком описании (summary) указывать свое значение. Например вот, как это сделано в дропбоксе:
[IMG]http://s5.********************/uploads/thumbs/2013/10/0bd2fe16f655c5f420fc090b0ccba34d.png[/IMG]

Мне надо так же сделать и добавлять туда значение, это значение хранится в настройках, скрин:
[IMG]http://s5.********************/uploads/thumbs/2013/10/5a9c8327d6fc1b625742eceecbb9dcc4.png[/IMG]

Подскажите как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 16:19     Как в пункте сис. настроек в кратком описании (summary) указывать свое значение?
Посмотрите здесь:

Как установить рекламу AdMob в свое Android приложение? Android
Android Как открыть ссылку из стороннего приложения через свое?
Как достучаться до системных настроек? Android
Data Backup -как получить адрес файла стандартных настроек Android
Как сделать часть настроек неактивными Android
PagerAdapter, как сделать, чтобы у каждого итема было свое название и свой вид? Android
Android Получить значение ListPreference из настроек
Android Подскажите, как организовать свое обучения
Android Можно ли указывать размеры элемента в процентах?
Как чекнуть радиобаттон (в радиогруппе) из настроек? Android
Android Как правильно добавить рекламу в свое приложение?
Android Как поставить обработчик на нажатие на изображение в пункте spinner?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.10.2013, 16:24     Как в пункте сис. настроек в кратком описании (summary) указывать свое значение? #2
Вызвать метод bindPreferenceSummaryToValue в onCreate, и передать ему preference, summary которого нужно менять. Метод универсальный и работает для всех преференсов.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
        @Override
        public boolean onPreferenceChange(Preference preference, Object value) {
            String stringValue = value.toString();
 
            if (preference instanceof ListPreference) {
                // For list preferences, look up the correct display value in
                // the preference's 'entries' list.
                ListPreference listPreference = (ListPreference) preference;
                int index = listPreference.findIndexOfValue(stringValue);
 
                // Set the summary to reflect the new value.
                preference
                        .setSummary(index >= 0 ? listPreference.getEntries()[index]
                                : null);
 
            } else if (preference instanceof RingtonePreference) {
                // For ringtone preferences, look up the correct display value
                // using RingtoneManager.
                if (TextUtils.isEmpty(stringValue)) {
                    // Empty values correspond to 'silent' (no ringtone).
 
                } else {
                    Ringtone ringtone = RingtoneManager.getRingtone(
                            preference.getContext(), Uri.parse(stringValue));
 
                    if (ringtone == null) {
                        // Clear the summary if there was a lookup error.
                        preference.setSummary(null);
                    } else {
                        // Set the summary to reflect the new ringtone display
                        // name.
                        String name = ringtone
                                .getTitle(preference.getContext());
                        preference.setSummary(name);
                    }
                }
 
            } else {
                // For all other preferences, set the summary to the value's
                // simple string representation.
                preference.setSummary(stringValue);
            }
            return true;
        }
    };
 
    private static void bindPreferenceSummaryToValue(Preference preference) {
        // Set the listener to watch for value changes.
        preference
                .setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
 
        // Trigger the listener immediately with the preference's
        // current value.
        sBindPreferenceSummaryToValueListener.onPreferenceChange(
                preference,
                PreferenceManager.getDefaultSharedPreferences(
                        preference.getContext()).getString(preference.getKey(),
                        ""));
    }
Vladiuss
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 37
03.10.2013, 17:58  [ТС]     Как в пункте сис. настроек в кратком описании (summary) указывать свое значение? #3
Нету метода bindPreferenceSummaryToValue что я делаю не так?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class PreferencesList extends PreferenceActivity implements PreferenceChangeListener{
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        addPreferencesFromResource(R.xml.preferences);
 
    }
 
    
    @Override
    protected void onStop() {   
        super.onStop();
        SystemSettings.getInstance().loadFromSharedPreferences(PreferenceManager.getDefaultSharedPreferences(getApplicationContext()));
    }
 
 
    @Override
    public void preferenceChange(PreferenceChangeEvent pce) {
        // TODO Auto-generated method stub
        
    }   
}
Добавлено через 22 минуты
Спасибо разобрался!!!

Добавлено через 53 минуты
Так как мне не надо менять значение после того как его поменяли потому что в настройках его поменять нельзя, мне достаточно получать и отображать значение при открытии настроек. Сделал немного проще

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        addPreferencesFromResource(R.xml.preferences);
 
        // При открытии настроек устанавливаю значение
        bindPreferenceSummaryToValue(findPreference("clients.minOrder"));
}
 
    private static void bindPreferenceSummaryToValue(Preference preference) {
        // Получаю значение настройки
        String prefValue = PreferenceManager.getDefaultSharedPreferences(
                preference.getContext()).getString(preference.getKey(),"");
        // Устанавливаю примечание        
        preference.setSummary(prefValue);
}
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.10.2013, 18:08     Как в пункте сис. настроек в кратком описании (summary) указывать свое значение? #4
Ну, всем не угодишь. Как я уже писал
Цитата Сообщение от Netscape Посмотреть сообщение
Метод универсальный и работает для всех преференсов.
Yandex
Объявления
03.10.2013, 18:08     Как в пункте сис. настроек в кратком описании (summary) указывать свое значение?
Ответ Создать тему
Опции темы

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