• 0

كيف اغيير قيمة sharedpreference بشكل تلقائي؟

السلام عليكم ورحمة الله وبركاته. انا عندي سؤال بالنسبة لshared preference. انا لم افهم طريقة عمل shared preference بشكل كامل لكن أعرف بأنه هو طريقة لحفظ الملفات في التطبيق حتى تكون مثل ماهي اذا دخلت التطبيق مرة اخرى، لكن هل هنالك طريقة لتغيير القيمه المحفوظه في المفتاح الموجود في shared preference بشكل تلقائي؟. بمعنى لو لدي متغير var او val رقمي دائما يرتفع من مثلا 10 الى 11 ثم الى 12 ثم ينزل الى11.. الخ انا مثلا اريد من shared pref ان يحفظ اولا الرقم 10 واذا تغير الى 11 تتغير القيمة المحفوظه معه بشكل تلقائي الى نفس الرقم فهل هنالك طريقة لعمل هذا الشيء؟

 

اتمنى اكون وفقت في شرح سؤالي بأفضل طريقة ممكنه.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

السلام عليكم @عبدالرحمن العنزي4

لا أعلم إن كنت تقصد shared preferences في Java أم في Dart , لكن تقريباً الفكرة نفسها يمكنك عمل ذلك مثلاً في الأندرويد ستديو (Java) أو جافا إجمالاً من خلال أولاً تخزين القيمة الأولية(dynamic value) من المتغير(الذي قيمته تتغير dynamic) فلتكن مثلاً 10 كما ذكرت ومن ثم نقوم بعمل شرط إن كان القيمة الأولية (10) التي تغيرت لا تساوي القيمة المخزنة في shared pref نقوم بإفراغها(shared pref) ثم تخزين القيمة التي تغيرت برمجياً (shared pref)  قمت بعمل كود صغير يوضح ذلك برمجياً يمكنك عمله بأكثر من طريقة ويعتمد على كيف تتغير القيمة هل يتم تغييرها من خلال Api أم من خلال كود معين كل عدد معين من الثواني ,تفضل 

int dynamicValue = 10; 
SharedPreferences sharedPref = getSharedPreferences("name", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt("dynamicKey", dynamicValue); 
editor.commit(); 
if (dynamicValue != sharedPref.getInt("dynamicKey",0)) { 
  /** 
  * Clear dynamicKey value with 0 * Then Insert the dynamicValue to the dynamicKey 
  */ 
  sharedPref.edit().putInt("dynamicKey",0).apply();        			  
  sharedPref.edit().putInt("dynamicKey",dynamicValue).apply(); 
	} 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 15 ساعات قال Mohamd Imran:

السلام عليكم @عبدالرحمن العنزي4

لا أعلم إن كنت تقصد shared preferences في Java أم في Dart , لكن تقريباً الفكرة نفسها يمكنك عمل ذلك مثلاً في الأندرويد ستديو (Java) أو جافا إجمالاً من خلال أولاً تخزين القيمة الأولية(dynamic value) من المتغير(الذي قيمته تتغير dynamic) فلتكن مثلاً 10 كما ذكرت ومن ثم نقوم بعمل شرط إن كان القيمة الأولية (10) التي تغيرت لا تساوي القيمة المخزنة في shared pref نقوم بإفراغها(shared pref) ثم تخزين القيمة التي تغيرت برمجياً (shared pref)  قمت بعمل كود صغير يوضح ذلك برمجياً يمكنك عمله بأكثر من طريقة ويعتمد على كيف تتغير القيمة هل يتم تغييرها من خلال Api أم من خلال كود معين كل عدد معين من الثواني ,تفضل 


int dynamicValue = 10; 
SharedPreferences sharedPref = getSharedPreferences("name", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt("dynamicKey", dynamicValue); 
editor.commit(); 
if (dynamicValue != sharedPref.getInt("dynamicKey",0)) { 
  /** 
  * Clear dynamicKey value with 0 * Then Insert the dynamicValue to the dynamicKey 
  */ 
  sharedPref.edit().putInt("dynamicKey",0).apply();        			  
  sharedPref.edit().putInt("dynamicKey",dynamicValue).apply(); 
	} 

الكود يتغير عن طريق كود أخذته من مكتبة عن طريق حساب الصلاوات بمعنى كل فترة وفترة يتغير وقت صلاة الفجر لدقيقه زيادة مثلا او لدقيقة نقصان. لكن بأذن الله راح اجرب اجابتك وراح ارد لك خبر ان شاء الله

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن