English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عند تصميم View في android، لتخزين بعض المعلومات الإضافية، تم تصميم طريقة setTag/getTag. هذا جعلني أتذكر أن كل عنصر Control في تصميم Winform يحتوي أيضًا على Tag.
ما سأقوله اليوم هو المخاطر التي واجهتها في تعلم android مؤخرًا مع setTag. في معظم الحالات، نحتاج فقط إلى استخدام طريقة setTag بمعامل واحد. ولكن في بعض الأحيان نحتاج إلى حفظ بيانات متعددة، لذا في هذه الحالة نحتاج إلى استخدام الطريقة المعدلة بـkey.
الوثيقة هي وصف: "يجب أن يكون المفتاح المحدد هو id تم إعلانه في موارد التطبيق لضمان أنه فريد (انظر نوع مصدر ID). سيؤدي تحديد المفاتيح كونها تتبع إطار Android أو عدم إرتباطها بأي حزمة إلى إلقاء استثناء IllegalArgumentException."
هنا يتم التوضيح بأن يجب ضمان استقلالية المفتاح، ولكن إذا استخدمنا تعريف مفتاح جافا (private static final int TAG_ID = 1;) فإنك ستجد خطأ مشابه كما يلي:
java.lang.IllegalArgumentException: The key must be an application-specific resource id
الحل الصحيح هو:
تحديد هذا المفتاح كمعرف دائم في res/values/strings.xml كما يلي:
<resources> <item type="id" name="tag_first"></item> <item type="id" name="tag_second"></item> </resources>
استخدام كالتالي:
imageView.setTag(R.id.tag_first, "Hello"); imageView.setTag(R.id.tag_second, "Success");
إليكم حل مشكلة مفتاح setTag لـ Android، شكراً لكم على دعمكم لهذا الموقع!
البيان: محتويات هذا المقال تم جمعها من الإنترنت، حقوق النشر تخص المالك الأصلي، تم جمع المحتوى من قبل المستخدمين عبر الإنترنت من تلقاء نفسه، هذا الموقع لا يمتلك حقوق الملكية، لم يتم تعديل المحتوى بشكل يدوي، ولا يتحمل أي مسؤولية قانونية. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فلا تتردد في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) لإبلاغنا، وقدم الدليل على ذلك، إذا تم التحقق من ذلك، سيتم حذف المحتوى المزعوم فوراً.