كيف يتم تنفيذ سلوك مختلف عندما ينقر المستخدم على طرق عرض مختلفة في ListView؟
-
29-10-2019 - |
سؤال
أنا مبتدئ في تطوير Android ، لذا فهذا سؤال أساسي.
أرغب في تنفيذ نفس السلوك المتبع في تطبيق جهات الاتصال.لديك ListView مع سلسلة من جهات الاتصال |أيقونات الهاتف.هناك سلوك واحد عند النقر فوق اسم جهة الاتصال ، وسلوك آخر عند النقر فوق رمز الهاتف.
هذا هو الكود الخاص بي. أي مساعدة هي موضع تقدير كبير.
باختصار ، ما الخطأ في المنهج
switch (v.getId ()) { حالة R.id.imageButtonAction:
فئة النشاط
Genacodicetagpreنشاط xml
Genacodicetagpreصف xml
Genacodicetagpreالمحلول 2
نهج جديد أفضل بكثير لحل هذه المشكلة بأناقة وبكود أقل !!!
مع التعديلات التالية ، تكون واجهة المستخدم أكثر استجابة ، ولا مزيد من مشاكل النقر المزدوج.:)
رمز أقل بكثير يعمل ببساطة!
تعديلات على صف xml
أدخل تخطيطًا خطيًا لالتفاف ملف في هذا التنسيق الخطي ، أدخل علامة باسم android: onClick="editCompanyClick" هذا هو معالج النقر الذي سيتم استدعاؤه في النشاط.
أدخل تنسيقًا خطيًا للالتفاف في هذا التخطيط الخطي ، أدخل علامة باسم android: onClick="dialClick" هذا هو معالج النقر الذي سيتم استدعاؤه في النشاط.
تعديلات على فئة النشاط
إزالة الشفرة السابقة
Genacodicetagpreأدخل الرمز
Genacodicetagpreصف xml
Genacodicetagpreنصائح أخرى
يتلقى رد اتصال onItemClick () كلاً من العرض المحدد بالإضافة إلى موضعه (القائم على 0) ، ويمكن أن يساعدك كل منهما في تحديد العرض الذي تم النقر عليه.الموضع عبارة عن فهرس في العناصر التي أضفتها ، وللسيناريوهات الأكثر تعقيدًا ، يمكنك عرض .setTag (كائن o) ، واستخدام getTag () لاستعادته من رد الاتصال الخاص بك.
لقد وجدت أخيرًا حلاً. هذا يحل المشكلة.لكنها تضيف واحدة أخرى.كما هو متوقع ، يتصرف ListView الآن بشكل مختلف عندما ينقر المستخدم على طرق عرض مختلفة (إما TextView أو ImageView). لكن يبدو أنها لا تستجيب.لا بد لي من "النقر المزدوج" لتشغيل إما company.setOnClick أو dial.setOnClick.أي اقتراحات؟
// إضافة إجراءات إلى تفاعل المستخدم Genacodicetagpre