زهرا زارعی 0 ارسال شده در ۲۲ تیر ۱۳۹۲ گزارش اشتراک گذاری ارسال شده در ۲۲ تیر ۱۳۹۲ سلام روز بخیر 1 سوال دارم لطف کنید هر چه زودتر بهم جواب بدین من تو یه صفحه تنظیمات تغییر میدم مثلا تیک 1 checkboxرو میزنم و مقدار 1 تکست رو تغییر میدم و مقدار تکست رو توی دیتابیس ذخیره میکنم ولی وقتی به یه صفحه دیگه میرم و دوباره به اون صفحه برمیگردم اون تنظیمات از بین رفته باید چکار کنم که حتی بعد از بسته شدن برنامه و باز شدن دوباره تنظیمات هنوز باشه نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۲۲ تیر ۱۳۹۲ گزارش اشتراک گذاری ارسال شده در ۲۲ تیر ۱۳۹۲ خب وقتی از صفحه خارج میشوید متد onDestory اجرا میشود و وقتی دوباره برمیگردیم به متد OnCreate وارد میشویم پس کلیه اطلاعات دوباره ساخته میشود. راه حل: خب تو اندروید دو تابع به نام های OnSaveState و onRestoreState وجود دارند برای اینکه حالت صفحه را ذخیره و دوباره بازیابی کنند. به نمونه مثال زیر توجه کنید : ذخیره اطلاعات : @Overridepublic void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); // Save UI state changes to the savedInstanceState. // This bundle will be passed to onCreate if the process is // killed and restarted. savedInstanceState.putBoolean("MyBoolean", true); savedInstanceState.putDouble("myDouble", 1.9); savedInstanceState.putInt("MyInt", 1); savedInstanceState.putString("MyString", "Welcome back to Android"); } بازیابی اطلاعات : @Overridepublic void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); // Restore UI state from the savedInstanceState. // This bundle has also been passed to onCreate. boolean myBoolean = savedInstanceState.getBoolean("MyBoolean"); double myDouble = savedInstanceState.getDouble("myDouble"); int myInt = savedInstanceState.getInt("MyInt"); String myString = savedInstanceState.getString("MyString");} نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
roomezonline 3 ارسال شده در ۲۳ تیر ۱۳۹۲ گزارش اشتراک گذاری ارسال شده در ۲۳ تیر ۱۳۹۲ در تکمیل پاسخ مدیر انجمن باید عرض کنم برای ذخیره تنظیمات و بازیابی اونها میتونید از SharedPreferences که تنظیمات رو در یک فایل XMl ذخیره میکنه استفاده کنید و هر موقع و هر کجا که دوست داشتید قابل بازیابی هست روش استفاده : تابع ذخیره اطلاعات : private void savePrefs(String key, String value) { SharedPreferences sp = this.getSharedPreferences("ChargeSetting", MODE_PRIVATE); SharedPreferences.Editor edit = sp.edit(); edit.putString(key, value); edit.commit(); } برای بازیابی اطلاعات از این تابع : private void loadPrefs() { final SharedPreferences sp = this.getSharedPreferences("ChargeSetting", MODE_PRIVATE); // SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); String low = sp.getString("low_set", ""); String highe = sp.getString("highe_set", ""); txt_low.setText(low); txt_highe.setText(highe); } هر کجا خواستید اطلاعات ذخیره بشه اینطوری از تابع Save استفاده میکنید : savePrefs("low_set", txt_low.getText().toString()); savePrefs("highe_set", txt_highe.getText().toString()); هر کجا خواستید اطلاعات رو لو کنید به این صورت : loadPrefs(); امیدوارم این مطلب مفید واقع شده باشه نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
زهرا زارعی 0 ارسال شده در ۸ مرداد ۱۳۹۲ مالک گزارش اشتراک گذاری ارسال شده در ۸ مرداد ۱۳۹۲ خب وقتی از صفحه خارج میشوید متد onDestory اجرا میشود و وقتی دوباره برمیگردیم به متد OnCreate وارد میشویم پس کلیه اطلاعات دوباره ساخته میشود. راه حل: خب تو اندروید دو تابع به نام های OnSaveState و onRestoreState وجود دارند برای اینکه حالت صفحه را ذخیره و دوباره بازیابی کنند. به نمونه مثال زیر توجه کنید : ذخیره اطلاعات : @Overridepublic void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); // Save UI state changes to the savedInstanceState. // This bundle will be passed to onCreate if the process is // killed and restarted. savedInstanceState.putBoolean("MyBoolean", true); savedInstanceState.putDouble("myDouble", 1.9); savedInstanceState.putInt("MyInt", 1); savedInstanceState.putString("MyString", "Welcome back to Android"); } بازیابی اطلاعات : @Overridepublic void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); // Restore UI state from the savedInstanceState. // This bundle has also been passed to onCreate. boolean myBoolean = savedInstanceState.getBoolean("MyBoolean"); double myDouble = savedInstanceState.getDouble("myDouble"); int myInt = savedInstanceState.getInt("MyInt"); String myString = savedInstanceState.getString("MyString");} سلام اقای سرسیفی من که از دوتا تابع هم استفاده می کنم بازم حالت صفحه ذخیره نمیشه. به نظرتون مشکل از کجاست؟ @Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); if(chkalm1.isChecked()){ savedInstanceState.putBoolean("ch1",true );} else{ savedInstanceState.putBoolean("ch1",false); } savedInstanceState.putString("MyString", alarm1.toString()); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); // Restore UI state from the savedInstanceState. // This bundle has also been passed to onCreate. boolean ch1 = savedInstanceState.getBoolean("ch1"); if(ch1){ chkalm1.setChecked(true);} else{ chkalm1.setChecked(false); } String myString = savedInstanceState.getString("MyString"); System.out.print(myString); alarm1.setText(myString); } نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
javadmahmoodi 10 ارسال شده در ۸ مرداد ۱۳۹۲ گزارش اشتراک گذاری ارسال شده در ۸ مرداد ۱۳۹۲ اگر اطلاعات را ذخیره نمیکند،بهتره اطلاعات رو در sharedPrefrences ذخیره کنید، سپس پس از خروج از اپلیکیشن اطلاعات پاک شود تا در صورت اجرا شدن دوباره برنامه برنامه به حالت عادی برگردد.چون sharedPrefrences در اندروید بطور عادی اطلاعات را تا زمانی که برنامه نصب شده باشد در خود نگه میدارد. SharedPreferences preferences = getSharedPreferences( "user", 0); SharedPreferences.Editor editor = preferences.edit(); editor.putString("typedate", typeDate); editor.putString("date", _daySelected); editor.commit(); سپس برای بازیابی اطلاعات : SharedPreferences setting = getSharedPreferences("user", 0); typedate=setting.getString("typedate", "") ; dates = setting.getString("date", ""); نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .