انجمن سایت کلیدستان



مشکل حفظ اطلاعات ListView درهنگام چرخش گوشی (برنامه نویسی اندروید)زمان کنونی: ۱۳۹۵/۰۹/۱۴، ۰۲:۱۹ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: naserkhosravi
آخرین ارسال: naserkhosravi
پاسخ 5
بازدید 533

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل حفظ اطلاعات ListView درهنگام چرخش گوشی (برنامه نویسی اندروید)

مشکل حفظ اطلاعات ListView درهنگام چرخش گوشی (برنامه نویسی اندروید)

#1
من یه List view دارم که چندتا ایتم از نوع String نگهداری میکنه.
میخوام وقتی گوشی میچرخه (Rotate) ,اطلاعات قبلی ذخیره و بازیابی بشن.
در مورد onRestoreInstanceState,onSaveInstanceState تحقیق کردم ولی متوجه نشدم که در رابطه با ListView چطوری ازش استقاده کنم.
متشکر میشم اگه راهنماییم کنید
پاسخ

مشکل حفظ اطلاعات ListView درهنگام چرخش گوشی (برنامه نویسی اندروید)

#2
سلام.
کلید زیر را بخوانید :

کلید شماره 270

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

مشکل حفظ اطلاعات ListView درهنگام چرخش گوشی (برنامه نویسی اندروید)

#3
(۱۳۹۴/۱۰/۲۳, ۰۵:۴۳ ب.ظ)admin نوشته: سلام.
کلید زیر را بخوانید :

کلید شماره 270

Flower

تشکر این روشی که شما گقتید,بهترین روش برای لیست های  از قبل اماده شده است.
برای لیست های که بصورت داینامک مقدار دهی میشوند باید از روش دیگه ای استفاده کرد.
خیلی ممنون.
پاسخ

مشکل حفظ اطلاعات ListView درهنگام چرخش گوشی (برنامه نویسی اندروید)

#4
با سلام

میتونید جهت این کار به این صورت از OnSaveInstancestate و OnRestoreInstanceState  استفاده کنید

ابتدا یه Class جهت ذخیره پارامترها و متغیرهای مورد نیاز میسازید (حتما Interface . Serializable  رو Implement کنید )

با دستور

کد:
outState.putSerializable("MyDate",MyClass);

 در قسمت OnSaveInstanceState  اطلاعات شما ذخیره میشه و جهت بازیابی اطلاعات هم میتونید از تابع OnRestoreInstanceState استفاده کنید و با دستور 

کد:
savedInstanceState.getSerializable("rowData");

اطلاعات خودتون رو بازیابی کنید

این روش در مواقعه ای که برنامه شما عمل Restart  رو انجام میده کارایی داره
تنها زمانی که کلید Back رو بزنید کارایی نداره و اطلاعات ذخیره نمیشه
پاسخ
 سپاس شده توسط admin

مشکل حفظ اطلاعات ListView درهنگام چرخش گوشی (برنامه نویسی اندروید)

#5
سلام تشکر بخاطر کمکی که کردید.چون تجربه کار کردن با Serializable  و نداشتم از این یه روش دیگه استفاده کردم.
داخل onSaveInstancseState مقدارش و ذخیره کردم.

کد پی‌اچ‌پی:
   protected void onSaveInstanceState(Bundle outState) {
 
       super.onSaveInstanceState(outState);
outState.putStringArrayList("myKey",arraylist);
 
   

و داخل onCreate دریافتش کردم.

کد پی‌اچ‌پی:
if (savedInstanceState!=null){
    arraylist=savedInstanceState.getStringArrayList("mykeyarraylist");
    count=savedInstanceState.getInt("mykeyint");
}else {
    arraylist=new ArrayList<String>();

پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)