سؤال

أحاول البحث في الأسئلة لمعرفة ما إذا كان هناك أي موضوع مشابه لمشكلتي ولكن لم أجد أي موضوع حتى الآن. هذه هي مشكلتي: لدي قائمة من المنتجات التي تحتوي على ما يقرب من 10000 عنصر مخزنة في SQLite ديسيبل. في تطبيقي ، أحتاج إلى البحث عن أي عنصر من هذه القائمة. لدي بعض الخيارات:

  • استخدم autoCompleteTextView ، مع تحميل جميع المنتجات مسبقًا ، وعندما أكتب اسم المنتج ، ستقترح القائمة المنتج ، ومن ثم أحتاج فقط إلى التحديد من الاقتراح. هذه أبسط طريقة ولكني أشعر أن 10000 عنصر (أو حتى أكثر في المستقبل) ستكون ثقيلة جدًا في التحميل
  • أثناء كتابة أي حرف والنقر فوق بحث ، سيقوم التطبيق بتحديد جميع المنتجات من db باستخدام الحرف كعامل تصفية. ثم يتم تغذية مجموعة النتائج إلى بعض عرض القائمة بحيث يمكنني اختيار أي عنصر. سيوفر هذا الأسلوب الذاكرة لأن التطبيق لن يقوم بتحميل جميع العناصر إلى الذاكرة ولكن فقط العناصر التي تحتوي على أحرف التصفية.

هل هناك طريقة أفضل للقيام بذلك؟ شكرا

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

المحلول

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

نصائح أخرى

هل يمكنك تصنيف العناصر؟بحيث يمكنك استخدام زر الزيادة لتحديد الفئة ، واستخدام AutoCompleteTextView لكتابة العناصر وتحديدها.

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