Урок 33. Хранение данных. Preferences.
Re: Урок 33. Хранение данных. Preferences.
конечно не будет работать ведь здесь же someBtn = (Button) findViewById(i); не id кнопки хранится а просто int значение.
Как сделать динамический лейаут - урок 16 более менее проливает свет.
Как сделать динамический лейаут - урок 16 более менее проливает свет.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 33. Хранение данных. Preferences.
это я понял когда оно не завелось.rezak90 писал(а):конечно не будет работать ведь здесь же someBtn = (Button) findViewById(i); не id кнопки хранится а просто int значение.
сенкс, но это мы умеем делать. Вопрос в сохранении добавленых плюшек на layout...rezak90 писал(а): Как сделать динамический лейаут - урок 16 более менее проливает свет.
Re: Урок 33. Хранение данных. Preferences.
Создали плюшку - записали её данные в Preferences, потом при каждой загрузки активити проверять Preferences на наличие каких либо плюшек, если нашлась плюшка то повторяем процедуру добавления.Вопрос в сохранении добавленых плюшек на layout...
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 33. Хранение данных. Preferences.
Перейдите лучше в перспективу DDMS, там слева будет список подключенных устроиств и эмуляторов, если там ничего нет, то естественно ничего и в File Explorer не будет.
В перспективе DDMS тоже есть уже открытая вкладка File Explorer в правом окне, если подключено несколько устройств или эмуляторов, то удобно перемещаться м/у ними просто кликнув в окне Deviсes на нужный, а File Explorer покажет файловую систему выбранного устройства или эмулятора.
В перспективе DDMS тоже есть уже открытая вкладка File Explorer в правом окне, если подключено несколько устройств или эмуляторов, то удобно перемещаться м/у ними просто кликнув в окне Deviсes на нужный, а File Explorer покажет файловую систему выбранного устройства или эмулятора.
Re: Урок 33. Хранение данных. Preferences.
AndreyI:
А можете по подробнее? Что такое перспектива DDMS? Где её запустить и куда тыкать?
А можете по подробнее? Что такое перспектива DDMS? Где её запустить и куда тыкать?
Re: Урок 33. Хранение данных. Preferences.
Отбой, как-то само разрулилось
Re: Урок 33. Хранение данных. Preferences.
Доброго вам времени суток.
Попробывал поэксперементировать с Preferences. И как ни странно, не вышло.
Почему-то значения вроде бы и сохраняются коректно, но не подгружаются.
Перелапатил код, но причину ошибки понять так и не смог.
Суть Activity: список номеров телефонов:
На форме присутствуют поле ввода телефона, кнопка добавления телефона в список, список для отображения.
на события OnPause, OnStart, OnResume повешены соответственные действия по загрузке / выгрузке данных.
Поэтому, прошу помочь разобратся с данной проблемой.
По этой ссылке можно найти архив с проэктом
http://zaporozhci.narod.ru/Proba_AddPho ... Window.zip
Попробывал поэксперементировать с Preferences. И как ни странно, не вышло.
Почему-то значения вроде бы и сохраняются коректно, но не подгружаются.
Перелапатил код, но причину ошибки понять так и не смог.
Суть Activity: список номеров телефонов:
На форме присутствуют поле ввода телефона, кнопка добавления телефона в список, список для отображения.
на события OnPause, OnStart, OnResume повешены соответственные действия по загрузке / выгрузке данных.
Поэтому, прошу помочь разобратся с данной проблемой.
По этой ссылке можно найти архив с проэктом
http://zaporozhci.narod.ru/Proba_AddPho ... Window.zip
Re: Урок 33. Хранение данных. Preferences.
если кому интересно то могу выложить класс для работы с preferences, и не нужно будет писать всяких load и save и т.д. методов, всё станит проще и банальней =)
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 33. Хранение данных. Preferences.
Как можно сделать динамический Preferences?
например в базе находится список книг, который меняется (грузится с сервера и заносится в базу).. как вывести этот список в Preferences чтобы при выборе книги она выводилась в главном активити?
например в базе находится список книг, который меняется (грузится с сервера и заносится в базу).. как вывести этот список в Preferences чтобы при выборе книги она выводилась в главном активити?
Re: Урок 33. Хранение данных. Preferences.
Т.е. как заполнить список в preference?Wa1deMar писал(а):Как можно сделать динамический Preferences?
В PreferenceActivity после метода addPreferencesFromResource ищите нужный вам список методом findPreference, приводите полученный объект к классу ListPreference и там уже методы setEntries и setEntryValues
Re: Урок 33. Хранение данных. Preferences.
Не сохраняется текст (((. Вот полный код:
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();
}
Подскажите где ошибка?
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.
Здравствуйте!
Вопрос по уроку следующий
С помощью этого кода:
Можно изменить имя выходного файла, куда будет "скидываться" сохранение. И получается что этот файл будет в папке с программой
А можно ли сделать так, чтобы этот файлик создавался вне папки с программой? (например на SDкарте, или сразу в каталоге /data), и как?
В еще вопрос совсем не по уроку, можно ли (и соотвественно как) сделать так, чтобы приложение устанавливалось не по стандартному пути (data/data/prog_name), а, например на SD карту (/sdcard/prog_name).
Просто в чем проблема - устанавливаю программу на реальное устройство, захожу в папку "data" с помощью любого файлового менеджера, а там пусто. Долго промучившись с проблемой выяснил что без root прав содержимое этой папки (ну и всего корневого каталога) отображаться не будет, соотвественно лично зайти и убедиться что какой-либо файлик создан не могу (что печалит).
А чтобы получить root права, надо прошивать телефон, что печалит втройне (есть риск его прошить как-нибудь некорректно и превратить аппарат в кирпич).
Или по крайней мере укажите пожалуйста место, куда "копать" (только желательно поточнее чем гугл, он на мои запросы описывает правила установки приложения с play market'а)
Вопрос по уроку следующий
С помощью этого кода:
Код: Выделить всё
sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
А можно ли сделать так, чтобы этот файлик создавался вне папки с программой? (например на SDкарте, или сразу в каталоге /data), и как?
В еще вопрос совсем не по уроку, можно ли (и соотвественно как) сделать так, чтобы приложение устанавливалось не по стандартному пути (data/data/prog_name), а, например на SD карту (/sdcard/prog_name).
Просто в чем проблема - устанавливаю программу на реальное устройство, захожу в папку "data" с помощью любого файлового менеджера, а там пусто. Долго промучившись с проблемой выяснил что без root прав содержимое этой папки (ну и всего корневого каталога) отображаться не будет, соотвественно лично зайти и убедиться что какой-либо файлик создан не могу (что печалит).
А чтобы получить root права, надо прошивать телефон, что печалит втройне (есть риск его прошить как-нибудь некорректно и превратить аппарат в кирпич).
Или по крайней мере укажите пожалуйста место, куда "копать" (только желательно поточнее чем гугл, он на мои запросы описывает правила установки приложения с play market'а)
Re: Урок 33. Хранение данных. Preferences.
можно вот таким велосипедом http://stackoverflow.com/questions/1086 ... to-sd-cardIvan99 писал(а):А можно ли сделать так, чтобы этот файлик создавался вне папки с программой? (например на SDкарте, или сразу в каталоге /data), и как?
На сколько мне известно то программно никак (после установки приложения можно, а перед установкой нет). Просто политика гугла не позволяет, это не есть хорошо, это не корректно. Ведь на западе к сд носителям относятся не очень хорошо и в основном делают телефоны со встроенной памятью, это в китае привыкли делать встроенную память. Та и не логично так делать, вытащил карту и считай что приложение упало.Ivan99 писал(а):можно ли (и соотвественно как) сделать так, чтобы приложение устанавливалось не по стандартному пути (data/data/prog_name), а, например на SD карту (/sdcard/prog_name).
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 33. Хранение данных. Preferences.
Извиняюсь за оффтоп, но еще такой вопросrezak90 писал(а): На сколько мне известно то программно никак
А можно каким-нибудь альтернативным путем получить доступ к содержимому папки с приложением (/data/data/app_name), без root'а ?
Re: Урок 33. Хранение данных. Preferences.
думаю что file explorer тот что в eclips'e сможет зайти куда угодно, по крайней мере у меня ещё не было проблем с правами рута.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 33. Хранение данных. Preferences.
Не может((rezak90 писал(а):думаю что file explorer тот что в eclips'e сможет зайти куда угодно, по крайней мере у меня ещё не было проблем с правами рута.
(*простите, не получается картинку картинкой прикрепить, потому просто ссылка)
http://s1.ipicture.ru/uploads/20121111/tnniT700.jpg
Однако факт, что отображаются именно данные с телефона (через этот обозреватель зашел на SDкарту и увидел файлики, которые действительно существуют).
Такое уточнение - а вы в eclips'e случайно никакой галочки нигде не ставили (вроде как "Отображать в обозревателе все так, будто доступны права суперпользователя")?
Re: Урок 33. Хранение данных. Preferences.
нет никаких галочек не ставил, тогда вариант с adb должен помочь
http://stackoverflow.com/questions/6814 ... -ddms-view
http://stackoverflow.com/questions/6814 ... -ddms-view
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 33. Хранение данных. Preferences.
Без рута на устройстве ничего не получится
Re: Урок 33. Хранение данных. Preferences.
Проблема! Один сервис не видит настройку, установленную в другом (в одном приложении).
В первом сервисе делаю:
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 действительно поток. объявлять надо внутри потока. Почему никто не сказал!
В первом сервисе делаю:
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 действительно поток. объявлять надо внутри потока. Почему никто не сказал!