Страница 3 из 11

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 04 окт 2012, 10:50
rezak90
конечно не будет работать ведь здесь же someBtn = (Button) findViewById(i); не id кнопки хранится а просто int значение.
Как сделать динамический лейаут - урок 16 более менее проливает свет.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 04 окт 2012, 10:53
Ivan
rezak90 писал(а):конечно не будет работать ведь здесь же someBtn = (Button) findViewById(i); не id кнопки хранится а просто int значение.
это я понял когда оно не завелось.
rezak90 писал(а): Как сделать динамический лейаут - урок 16 более менее проливает свет.
сенкс, но это мы умеем делать. Вопрос в сохранении добавленых плюшек на layout...

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 04 окт 2012, 11:04
rezak90
Вопрос в сохранении добавленых плюшек на layout...
Создали плюшку - записали её данные в Preferences, потом при каждой загрузки активити проверять Preferences на наличие каких либо плюшек, если нашлась плюшка то повторяем процедуру добавления.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 02 ноя 2012, 16:42
vortex
Не могу понять одну вещь.

Для этого в Eclipse откройте меню Window > Show View > Other и выберите Android > File Explorer. Отобразилась файловая система эмулятора

У меня закладка отобразилась, а вот внутри пустота :( Что я делаю не так?

Изображение

Эмулятор с приложением запущен.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 02 ноя 2012, 23:13
AndreyI
Перейдите лучше в перспективу DDMS, там слева будет список подключенных устроиств и эмуляторов, если там ничего нет, то естественно ничего и в File Explorer не будет.
В перспективе DDMS тоже есть уже открытая вкладка File Explorer в правом окне, если подключено несколько устройств или эмуляторов, то удобно перемещаться м/у ними просто кликнув в окне Deviсes на нужный, а File Explorer покажет файловую систему выбранного устройства или эмулятора.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 06 ноя 2012, 08:53
vortex
AndreyI:
А можете по подробнее? Что такое перспектива DDMS? Где её запустить и куда тыкать?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 06 ноя 2012, 09:16
vortex
Отбой, как-то само разрулилось :)

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 07 ноя 2012, 21:54
ZipovUA
Доброго вам времени суток.

Попробывал поэксперементировать с Preferences. И как ни странно, не вышло.

Почему-то значения вроде бы и сохраняются коректно, но не подгружаются.
Перелапатил код, но причину ошибки понять так и не смог.

Суть Activity: список номеров телефонов:
На форме присутствуют поле ввода телефона, кнопка добавления телефона в список, список для отображения.
на события OnPause, OnStart, OnResume повешены соответственные действия по загрузке / выгрузке данных.

Поэтому, прошу помочь разобратся с данной проблемой.
По этой ссылке можно найти архив с проэктом
http://zaporozhci.narod.ru/Proba_AddPho ... Window.zip

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 07 ноя 2012, 23:28
rezak90
если кому интересно то могу выложить класс для работы с preferences, и не нужно будет писать всяких load и save и т.д. методов, всё станит проще и банальней =)

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 07 ноя 2012, 23:45
Wa1deMar
Как можно сделать динамический Preferences?

например в базе находится список книг, который меняется (грузится с сервера и заносится в базу).. как вывести этот список в Preferences чтобы при выборе книги она выводилась в главном активити?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 09 ноя 2012, 10:30
damager82
Wa1deMar писал(а):Как можно сделать динамический Preferences?
Т.е. как заполнить список в preference?
В PreferenceActivity после метода addPreferencesFromResource ищите нужный вам список методом findPreference, приводите полученный объект к классу ListPreference и там уже методы setEntries и setEntryValues

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 09 ноя 2012, 11:59
$01ny$hko
Не сохраняется текст (((. Вот полный код:
Button btnSave;
EditText etText;
EditText etNumber;

SharedPreferences sPref;

final String SAVED_TEXT = "saved_text";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.profil);

etText = (EditText) findViewById(R.id.etText);
etNumber = (EditText) findViewById(R.id.etNumber);


btnSave = (Button) findViewById(R.id.btnSave);
btnSave.setOnClickListener((OnClickListener) this);

}

public void onClick(View v) {
switch (v.getId()) {
case R.id.btnSave:
saveText();
break;
default:
break;

}
}

void saveText() {
sPref = getPreferences(MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString(SAVED_TEXT, etText.getText().toString());
ed.commit();
Toast.makeText(this, "Text saved", Toast.LENGTH_SHORT).show();

}

@Override
protected void onDestroy() {
saveText();
super.onDestroy();
}
Подскажите где ошибка?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 11 ноя 2012, 13:54
Ivan99
Здравствуйте!

Вопрос по уроку следующий
С помощью этого кода:

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

sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
Можно изменить имя выходного файла, куда будет "скидываться" сохранение. И получается что этот файл будет в папке с программой

А можно ли сделать так, чтобы этот файлик создавался вне папки с программой? (например на SDкарте, или сразу в каталоге /data), и как?


В еще вопрос совсем не по уроку, можно ли (и соотвественно как) сделать так, чтобы приложение устанавливалось не по стандартному пути (data/data/prog_name), а, например на SD карту (/sdcard/prog_name).
Просто в чем проблема - устанавливаю программу на реальное устройство, захожу в папку "data" с помощью любого файлового менеджера, а там пусто. Долго промучившись с проблемой выяснил что без root прав содержимое этой папки (ну и всего корневого каталога) отображаться не будет, соотвественно лично зайти и убедиться что какой-либо файлик создан не могу (что печалит).
А чтобы получить root права, надо прошивать телефон, что печалит втройне (есть риск его прошить как-нибудь некорректно и превратить аппарат в кирпич).

Или по крайней мере укажите пожалуйста место, куда "копать" (только желательно поточнее чем гугл, он на мои запросы описывает правила установки приложения с play market'а)

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 11 ноя 2012, 14:22
rezak90
Ivan99 писал(а):А можно ли сделать так, чтобы этот файлик создавался вне папки с программой? (например на SDкарте, или сразу в каталоге /data), и как?
можно вот таким велосипедом http://stackoverflow.com/questions/1086 ... to-sd-card
Ivan99 писал(а):можно ли (и соотвественно как) сделать так, чтобы приложение устанавливалось не по стандартному пути (data/data/prog_name), а, например на SD карту (/sdcard/prog_name).
На сколько мне известно то программно никак (после установки приложения можно, а перед установкой нет). Просто политика гугла не позволяет, это не есть хорошо, это не корректно. Ведь на западе к сд носителям относятся не очень хорошо и в основном делают телефоны со встроенной памятью, это в китае привыкли делать встроенную память. Та и не логично так делать, вытащил карту и считай что приложение упало.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 11 ноя 2012, 15:33
Ivan99
rezak90 писал(а): На сколько мне известно то программно никак
Извиняюсь за оффтоп, но еще такой вопрос
А можно каким-нибудь альтернативным путем получить доступ к содержимому папки с приложением (/data/data/app_name), без root'а ?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 11 ноя 2012, 16:56
rezak90
думаю что file explorer тот что в eclips'e сможет зайти куда угодно, по крайней мере у меня ещё не было проблем с правами рута.

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 11 ноя 2012, 19:51
Ivan99
rezak90 писал(а):думаю что file explorer тот что в eclips'e сможет зайти куда угодно, по крайней мере у меня ещё не было проблем с правами рута.
Не может((
(*простите, не получается картинку картинкой прикрепить, потому просто ссылка)
http://s1.ipicture.ru/uploads/20121111/tnniT700.jpg

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

Такое уточнение - а вы в eclips'e случайно никакой галочки нигде не ставили (вроде как "Отображать в обозревателе все так, будто доступны права суперпользователя")?

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 11 ноя 2012, 21:13
rezak90
нет никаких галочек не ставил, тогда вариант с adb должен помочь
http://stackoverflow.com/questions/6814 ... -ddms-view

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 11 ноя 2012, 22:36
AndreyI
Без рута на устройстве ничего не получится

Re: Урок 33. Хранение данных. Preferences.

Добавлено: 09 дек 2012, 14:53
djdance
Проблема! Один сервис не видит настройку, установленную в другом (в одном приложении).
В первом сервисе делаю:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor ed = prefs.edit();
ed.putString("tmp1", tmp1);
ed.commit();
Log.d(TAG, "проверка: "+prefs.getString("tmp1",""));


во втором

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
...
new Thread(new Runnable() { public void run() { while (true) {
String q=prefs.getString("tmp1","");
}}}

в итоге q всегда пустая, пока не перезапущу всё с нуля.
"проверка" высвечивает успешно.
почему так? поток виноват?

UPDATE действительно поток. объявлять надо внутри потока. Почему никто не сказал! :D