كيف يتم تنفيذ سلوك مختلف عندما ينقر المستخدم على طرق عرض مختلفة في ListView؟

StackOverflow https://stackoverflow.com/questions/6392788

سؤال

أنا مبتدئ في تطوير 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

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