کلیدستان

نسخه‌ی کامل: چگونگی ریفرش Activity اصلی بعد از اینکه کاربر تنظیمات SharedPreferences را تغییر داد
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام
من یک صفحه تنظیمات بوسیله SharedPreferences ساختم که داخلش مثلا عدم چرخش صفحه و عدم خاموش شدن صفحه نمایش و نحوه Sort کردن لیست ویو هست حالا وقتی که کاربر این تنظیمات را تغییر میدهد باید یکبار از برنامه خارج شود تا تغییرات اعمال شود میخواستم بدانم چطور میتونم بلافاصله بعد از اینکه کاربر تنظیمات را تغییر داد همان موقع اعمال شود و نیاز به خروج و ورود مجدد به برنامه نباشد.
 
سلام ساده ترین روشش اینه که اکتیویتی رو ببندی دوباره باز کنی به این شکل

کد پی‌اچ‌پی:
finish();
startActivity(getIntent());[ 
(۱۳۹۳/۰۹/۲۳, ۰۲:۰۵ ب.ظ)'aliasghar' نوشته: [ -> ]سلام ساده ترین روشش اینه که اکتیویتی رو ببندی دوباره باز کنی به این شکل

کد پی‌اچ‌پی:
finish();
startActivity(getIntent());[ 
 

کجا باید این کد رو بذارم؟ چون صفحه تنظیمات که کاربر وارد بشه بعد با دگمه Back گوشی باید برگرده و هیچ کدی اجرا نمیشه موقع برگشت.
سلام.
فرض می کنیم شما یک Activity اولیه دارید که با کلیک بر روی یک دکمه (Button) به صفحه (Activity) تنظیمات می روید. وقتی تنظیمات را تغییر می دهید و دکمه Back گوشی را می زنید، به همان Activity اولیه برمی گردید و مشاهده می کنید که مانند قبل است. مشکل از آنجا ناشی می شود که Activity قبلی، به حالت pause یا stop رفته است (در پس زمینه است) و با برگشتن به آن، دوباره از نو اجرا نمی شود (بلکه همان اجرای قبلی آن را می بینیم).
اکنون برای برطرف کردن این مشکل، باید مراحل زیر را انجام بدهید :

1- در Activity اولیه ، بعد از کد رفتن به Activity تنظیمات، باید تعیین کنید که این Activity اولیه، destroy شود (یعنی کاملا بسته می شود و دیگر به حالت pause یا stop نمی رود). برای این منظور، کد زیر را اجرا کنید (بعد از کد رفتن به Activity تنظیمات) :

کد پی‌اچ‌پی:
finish(); 

2- در Activity تنظیمات، باید تعیین کنید که وقتی کاربر بر روی دکمه Back گوشی اشاره کرد، به همان Activity اولیه برویم. برای این منظور، کلید زیر را بخوانید (چگونگی اجرای یک سری کد هنگام اشاره بر روی دکمه Back گوشی) :

کلید شماره 234