آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ریختن چند string درون آرایه SharedPreferences

Ali.Ab  6 سال پیش  6 سال پیش
0 0

سلام. من تعدادی رشته رو از یه فایل json میگیرم و به صورت زیر درون یه SharedPreferences میریزم تا هرموقع کاربر آفلاین بود هم بتونه از مطالب استفاده کنه. حالا مشکل اینجاس که هر بار فقط آخرین بلوک json ذخیره میشه نه هر 20 تا رشته! ممنون میشم مشکل رو بفرمایید.

 
if (response.isSuccessful()) {

list = response.body();
Sig_Model sigModel = null;

String [] comment2 = new String [20];

for (int i = 0; i < list.size(); i++) {
sigModel = new Sig_Model();

String comment = list.get( i ).getComment();

sigModel.setComment( comment );

listing.add(sigModel);

///////////////////////////////////////

comment2 [i] = comment;

SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString("commentt", comment2 [i]);

editor.apply();

/////////////////////////////////////////////
}

من مقدار comment رو از json گرفتم و درون comment2 که به صورت آرایه هست ریختم تا درون SharedPreferences ذخیره بشه ولی فقط آخرین comment ذخیره میشه!

الان به نظر خودم دو تا راه داره ولی نمیدونم چطور پیادش کنم:

1: کل list رو ذخیره کنم تا بعد دوباره به صورت list.get( i ).getComment(); بخونمش

2: comment رو هر بار به آرایه اضافه کنم یه چیزی مثله editor.addString

 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
jbRhmNqb  6 سال پیش
+1 0

 پاسخ صحیح

 

editor.putString("commentt", comment2 [i]);

خط بالا رو به خط پایین تبدیل کنین و هر بار که خواستین از پریفرنس بخونین با حلقه for اسم ها رو بسازین و بخونینش

editor.putString("commentt"+i, comment2 [i]);

 

+1 0
واقعا ممنون خیلی براش وقت گذاشتم ولی متوجهش نبودم (6 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .