Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Vladiuss
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 37
#1

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

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

Не знаю как правильно объяснить, но мне надо в пункте настроек в кратком описании (summary) указывать свое значение. Например вот, как это сделано в дропбоксе:


Мне надо так же сделать и добавлять туда значение, это значение хранится в настройках, скрин:


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

Video Embedder не выводит видео в кратком описании
Использую Wordpress 3.5.1 Плагин для добавления видео: Advanced Responsive...

Не выводиться картинка в кратком описании поста (статьи)
Всем доброго времени суток! Проблема такая, написал статью, в ней буквально...

Как сделать так чтобы переменная в описании одной функции была доступна в описании другой?
Как сделать так чтобы переменная в описании одной функции была доступна в ...

Как поставить свое значение в чужую программу?
Вот уменя такая задача, есть некая программа (под Виндовс разумеется) У нее...

Как перевести число из сис-мы счисления A в сис-му счисления B?
Киньте плз ссылку или объясните, как перевести число из сис-мы счисления A в...

3
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.10.2013, 16:24 #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(),
                        ""));
    }
0
Vladiuss
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 37
03.10.2013, 17:58  [ТС] #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);
}
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.10.2013, 18:08 #4
Ну, всем не угодишь. Как я уже писал
Цитата Сообщение от Netscape Посмотреть сообщение
Метод универсальный и работает для всех преференсов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2013, 18:08

Как создать переменную, которая каждую минуту меняет свое значение?
Вопрос в сабже. Нужно чтобы некая переменная A меняла каждую секунду значение в...

Как сделать, чтобы переменная не затирала свое предыдущее значение? (См. внутри)
При выборе нескольких значений RadioGroup нужно вывести все значения, которые...

Как сделать программно что бы ShowModal менял свое значение (true и false)?
Может кто ни будь знает как сделать программно что бы ShowModal менял свое...


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

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

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