اذهب إلى المحتوى

السؤال

نشر

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

 

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

Recommended Posts

  • 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(); 
	} 

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...