Android List View

الـ ListView  هو  أداة من أدوات واجهة المستخدم (View) و التي تستخدم لعرض مجموعة من البيانات من خلالها و التي بدورها تتيح ميزة الـ Scroll  Bar.  و تحديدا تستخدم في عرض البيانات التي تكون على شكل مجموعة عناصر مثل قائمة لمجموعة من الصور أو أسماء فريق كرة القدم ..الخ. علما أنه لا يكاد يوجد تطبيق في Play Store إلا ويوجد فيه الـ ListView  بما في تلك التطبيقات الشهيرة كتطبيق Facebook فكل البوستات الموجودة في الـ Facebook  و التي تشاهدها في الصفحة الرئيسية عند فتح التطبيق ما هي إلا شرائح من البيانات المعروضة باستخدام الـ ListView  و كذلك في Twitter وInstagram  و غيرها.. .

لذلك فهو من اهم العناصر في تصميم تطبيقات الاندرويد , من حيث ترتيب وعرض العناصر في الصفحة او عرض قوائم معلومات , او تصميم عناصر اخرى متشابهة متكررة . سنتعرف في هذا الدرس اساسيات انشاء ListView وتصميم قائمة بسيطة تعرض نص فقط و سوف نتوسع في الامثلة واشكال ListView في الدروس القادمة إن شاء الله .

 

 

و الآن حتى يتم إنشاء ListView كما في الشكل التالي يجب علينا فعل ما يلي:

 

  • الانتقال الى ملف activity_main.xml.
  • من قائمة Pallete  ثم  container نبحث عن الـListView  و نقوم بسحبها الى Layout.
  • نعدل الـID  و لتكن على سبيل المثال  xmlListView.

 

و الآن نقوم بانشاء layout  حيث ان هذا الـ  layout يحتوي على الـ Views المراد تنسيقها ووضع البيانات بداخلها عن طريق الـAdapter:

  1. من قائمة  File ثم  new ثم نقوم بالضغط علىLayout resource file.
  2. نقوم بتسميته على سبيل المثال row.xml
  3. نضيف اليه Text View
  4. نعدل الـ ID لهذا الـText View وليكن على سبيل المثال: tvName.

 

و الآن حتى نقوم بانشاء الـ Adapter يجب علينا ما يلي:

  • انشاء كلاس و نسميه على سبيل المثال ListAdapter.
  • حيث أن هذا الكلاس  Extends الـArrayAdapter
  • و يحتوي أيضا على  Inner Class ويسمى بالـViewHolder.

 

الكود التالي يوضح كود ال  Adapter

عرفنا Array تستقبل الاسماء ,وفي دالة ()getCount نحدد عدد عناصر هذه ال ListView بحيث تكون نفس عدد عناصر Array الاسماء .

في دالة ()getView نقوم بإنشاء row جديد كل مرة بعدد عناصر ال List ونملئ العناصر بالمعلومات .

في دالة ()ViewHolder هنا نقوم بتعريف عناصر كل row في هذه ال List .

و الآن نذهب الى كلاس   MainActivityو الذي يسمى DownloadData ، و نقوم بوضع هذا الكود ادناه في الميثود onPostExcute.

 

كم نلاحظ أعلاه:

  • تم إنشاء اوبجكت من الكلاس ParseApplications و الذي بدوره يقوم بمعالجة البيانات المحملة.
  • إنشاء اوبجكت من الكلاس ListAdapter و تمرير الـ arguments اللازمة للـAdapter
  • و أخيرا يتم استدعاء الميثودsetAdapter على الاوبجكت appList و الذي يمثل الـxmlListView.