سؤال

في أحد أنشطتي لدي ImageButton أنه عند النقر يغير مورد الخلفية باستخدام setBackgroundResource().أنا أعمل بشكل جيد في هذا النشاط ولكن عندما أترك هذا النشاط وأعود إليه، يتغير الزر مرة أخرى إلى خلفيته الافتراضية التي تم تعيينها في ملف XML.هل هناك طريقة لتعيين مورد الخلفية بشكل دائم على شيء ما حتى يتم النقر فوق الزر مرة أخرى؟

هل كانت مفيدة؟

المحلول

تحتاج إلى تخزين القيمة على زر الصورة في متغير ثابت أو SharedPreeferences،

على سبيل المثال يعلن متغير giveacodicetagpre.

الآن على زر IMG، انقر فوق giveacodicetagpre.

وأيضا ما يلي في OnResume () من النشاط: giveacodicetagpre.

نصائح أخرى

استخدم SharedPreferences.

عند تغيير الخلفية: Genacodicetagpre

أو

Genacodicetagpre

وما إلى ذلك.سيؤدي هذا إلى حفظ السلسلة التي تصف خلفيتك الحالية إلى SharedPreferences.

في onCreate-Method ، يجب أن تضع: Genacodicetagpre

سيعيدك هذا "background_nr_x" إلى الخلف. الآن يمكنك اختيار الخلفية: Genacodicetagpre

ملاحظة: سيؤدي هذا إلى استعادة الخلفية المختارة حاليًا ، حتى إذا تم إغلاق التطبيق.

احفظ عنوان URL / معرف الصورة التي تستخدمها كخلفية في SharedPreferences وتأكد من تعيينه في كل مرة يتم فيها إنشاء النشاط.وإلا فسيتم استخدام الخلفية المحددة في ملف XML عند إنشاء النشاط في المرة القادمة.

يجب عليك الكتابة فوق نشاطك onResume() طريقة.اجعل نشاطك أو زرك يحتفظ بالحالة (مضغوطًا أو غير مضغوط) وفي onResume() الطريقة، تحقق من هذه الحالة وقم بتغيير الخلفية.

يمكنك استخدام خدعة مثل هذه: Genacodicetagpre

أو يمكنك استخدام SharedPreferences كما هو مقترح آخر

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top