Урок 74. Preferences. Программное создание экрана настроек

Обсуждение уроков
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 74. Preferences. Программное создание экрана настроек

Сообщение damager82 » 29 апр 2012, 23:00

В этом уроке:
- создаем экран настроек программно


Click here to read this article!
Последний раз редактировалось damager82 19 май 2017, 10:17, всего редактировалось 4 раза.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

ALTSoft
Сообщения: 2
Зарегистрирован: 07 мар 2014, 11:29

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение ALTSoft » 07 мар 2014, 11:39

Добрый день!
После данного урока попытался сделать свой небольшой экран настроек, содержащий три строковых значения. Почему то они рисуются в произвольной последовательности и , к тому же, только один EditTextPreference отрисовывает значения Title и Summary, в двух других вообще все пусто...

package com.altsoft.meccabinet;

import android.os.Bundle;
//import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
//import android.preference.ListPreference;
//import android.preference.Preference;
//import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
//import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;

public class PrefActivity extends PreferenceActivity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// создаем экран
PreferenceScreen rootScreen = getPreferenceManager().createPreferenceScreen(this);
// говорим Activity, что rootScreen - корневой
setPreferenceScreen(rootScreen);

// далее создаем элементы, присваиваем атрибуты и формируем иерархию

EditTextPreference NameProfile = new EditTextPreference(this);
NameProfile.setKey("NameProfile");
NameProfile.setTitle("Название профиля");
NameProfile.setSummary("Например \"Моя квартира\", ул. Ленина, кв15, Мама");

rootScreen.addPreference(NameProfile);

EditTextPreference LicProfile = new EditTextPreference(this);
NameProfile.setKey("LicProfile");
NameProfile.setTitle("Лицевой счет");
NameProfile.setSummary("9-ти значный номер л/с");

rootScreen.addPreference(LicProfile);

EditTextPreference PhoneProfile = new EditTextPreference(this);
NameProfile.setKey("PhoneProfile");
NameProfile.setTitle("Телефон");
NameProfile.setSummary("10-ти значный номер телефона, без +7, 8 и т.д.");

rootScreen.addPreference(PhoneProfile);

}
}

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение Foenix » 07 мар 2014, 12:39

никто не будет это смотреть, пока ты не отформатируешь код в редакторе.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение klblk » 07 мар 2014, 12:58

я буду...) хотя код нужно оформлять, это да
Глупости написаны. Title и Summary меняются только у одной настройки NameProfile, только 3 раза. И если вы этого не понимаете, а это скорее всего, тк задали этот вопрос, то может стоит подтянуть базу знаний.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение Foenix » 07 мар 2014, 13:32

klblk писал(а):я буду...) хотя код нужно оформлять, это да
Глупости написаны. Title и Summary меняются только у одной настройки NameProfile, только 3 раза. И если вы этого не понимаете, а это скорее всего, тк задали этот вопрос, то может стоит подтянуть базу знаний.
да с тобой все ясно :) потом удивляешься, что народ даже гуглить ленится. А сам - вот вам тарелочка с голубой каемочкой.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение klblk » 11 мар 2014, 06:19

Foenix писал(а):
klblk писал(а):я буду...) хотя код нужно оформлять, это да
Глупости написаны. Title и Summary меняются только у одной настройки NameProfile, только 3 раза. И если вы этого не понимаете, а это скорее всего, тк задали этот вопрос, то может стоит подтянуть базу знаний.
да с тобой все ясно :) потом удивляешься, что народ даже гуглить ленится. А сам - вот вам тарелочка с голубой каемочкой.
ну так-то да)
Ну в данном случае гугл вряд ли бы помог) а мне как-то сразу ошибка увиделась еще из описания...)

ALTSoft
Сообщения: 2
Зарегистрирован: 07 мар 2014, 11:29

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение ALTSoft » 11 мар 2014, 16:04

Спасибо ребята! Прям глаза сразу открыли. А то я в запарах в упор такой дураццкой ошибки и не видел... Одним словом горе от ума :)

Enero
Сообщения: 3
Зарегистрирован: 13 апр 2014, 00:31

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение Enero » 08 май 2014, 02:14

С последними занятиями (в том числе и этом) как-то всё плохо: что не занятие, то какой-нибудь метод is deprecated (здесь, getPreferenceManager и setPreferenceScreen).
В отдельных занятиях ещё есть упоминания о свежих методах, описанных далее, а здесь-то куда смотреть, чем заменять?

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение klblk » 08 май 2014, 08:23

Enero писал(а):С последними занятиями (в том числе и этом) как-то всё плохо: что не занятие, то какой-нибудь метод is deprecated (здесь, getPreferenceManager и setPreferenceScreen).
В отдельных занятиях ещё есть упоминания о свежих методах, описанных далее, а здесь-то куда смотреть, чем заменять?
http://developer.android.com/intl/ru/gu ... tings.html

Аватара пользователя
TheExile
Сообщения: 2
Зарегистрирован: 22 сен 2014, 20:31
Откуда: Питер

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение TheExile » 22 сен 2014, 20:52

Добрый день. Урок оказался очень занимательным и помог мне в создании preferences для моих живых обоев.
(почему я решил создавать программно - отдельная история)
Но вот не смогут ли мне помочь в одном вопросе.
В XML можно создать вот такую вещь (Android 4.0)

Код: Выделить всё

<SeekBarPreference android:key="SPIN"
        android:summary="Summary"
        android:max="10" 
        android:title="Title" 
        android:persistent="true"
        android:defaultValue="5" />
а как такое создать программно? (весь инет облазил - но там все немного не то)
P.S - Да я умею пользоваться поиском.
P.P.S - Если я спросил. значит много искал и не нашел. Задавать глупые вопросы - не мое хобби.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 74. Preferences. Программное создание экрана настро

Сообщение klblk » 23 сен 2014, 08:27

Насколько я знаю SeekBarPreference по умолчанию в андроид не существует. Нужно либо подключать стороннюю библиотеку либо писать собственный виджет (пример, статья старенькая, но насколько я знаю ничего в последнее время в этой сфере не менялось).

А вот как это потом программно создавать не знаю, ни разу не создавал, но вероятно также как вы создаете другие Preference.

Ответить