ListView

ListView : هو عرض يضم العديد من العناصر وعرضها في قائمة قابلة للتمرير الرأسي. ويتم ادراج عناصر القائمة تلقائيا باستخدام ال Adapter , ويتم وضع المحتوى من المصدر مثل: array  أو database.

خصائص الListView :

Simple ListView :

لانشاء simple ListView سوف نحتاج الى :

1- ListView

2- adapter

3- البيانات (Data)

*المثال التالي سوف يوضح لك عمل ListView

activity_main.xml  :

تعريف ال ListView  في xml

 

MainActivity.java  :

 

 

1- تعريف array  لعرضها في ال ListView  

public String[] arrayStr = new String[]{“”,””,””,””}

2- تعريف ListView:

ListView listView;

3- استدعاء ال ListView   من ال xml:

listView = (ListView) findViewById(R.id.list);

4- تعريف adapter  :

ArrayAdapter<String> adapter = new ArrayAdapter<String>

( this , android.R.layout.simple_list_item_1 , android.R.id.text1 , arrayStr );

 

5-  تعيين ال adapter  لل ListView  :  ادراج عناصر القائمة في الlistView

listView.setAdapter(adapter);

Custom ListView Adapter :

-لإنشاء Custom List Adapter  سوف نحتاج الى:-

1- ListView : قائمة

2- Row List view : العناصر التي سوف تعرض في كل سطر في الListView

3- adapter : تستخدم لادراج عناصر القائمة تلقائيا.

4- البيانات Data : تكون اما في array  أو في DataBase.

المثال التالي سوف يوضح لك عمل  :Custom Adapter

 

activity_main.xml  :

ملف الxml  الأساسي الذي سوف يظهر لي في بدايه تشغيل البرمجية, تعريف الListView  في الxml

<ListView…/>  ولا ننسى اضافة الid  لها لتعريفها في كود ال java .

row_list.xml :

ملف xml  يعبر عن العناصر التي سوف تعرض في كل سطر في الListView .

في هذا المثال سوف نظهر في كل سطر text  و image , فإننا في هذه الحالة سوف نعرف <TextView…/>  و <ImageView…/> , ولا ننسى اضافة id لكل عنصر, ليتم التعامل معه في كود الjava .

 

Adapter.java :

*شرح كود  class الAdapter  :

1-  

 

– توريث BaseAdapter  للclass

– تعريف ال Context  يمثل بيئة البيانات

– تعريف array 2, يتم وضع البيانات فيها

– استخدام  constructor يحتوي على ثلاث parameter

——–context  : يمثل بيئة البيانات, هنا يعبر عن MainActivity.class لانه تم ارساله من خلال الparameter  وتم   مساواتها مع ال context  التي تم تعريفها سابقا.

——–String[] arrayStr  : يحتوي على ال arrayStr المرسل من ال class   الاساسية(MainActivity.class),  , وتم مساواتها مع الarrayStr  التي تم تعريفها سابقا

——–int[] arrayImage  : يحتوي على الarrayImage المرسل من ال class   الاساسية(MainActivity.class), وتم مساواتها مع الarrayImage  التي تم تعريفها سابقا.

2- 

 

3- class Holder  :

 

يحمل ال Views    TextView) و ImageView ) وتمثل الTextView  و ImageView  التي في row_list.xml  .

 

4- ()getView :

 

MainActivity.java :

 

1-  تعريف arrays  لعرضها في ال ListView  

public String[] arrayStr … للنصوص

public int[] arrayImage …  للصور

ملاحظة : الDataType  المناسب للصور هو int. و يجب اضافة الصور في ملف الdrawable  أو في mipmap كما في الشكل التالي , اما بطريقة سحب واسقاط أو نسخ ولصق.

يجب اضافة مسار لكل صورة كالاتي :  (R.drawable.facebook  ), حيث أن facebook  اسم لصورة.

2- استدعاء ال ListView  من الxml .

ListView listView = (ListView) findViewById(R.id.list);

3- تعيين ال setdapter  لل ListView  واستدعاء class Adapter (ادراج عناصر القائمة باستخدام ال setAdapter)

listView.setAdapter(new Adapter( this , arrayStr , arrayImage));

لتعزيز فهمك سأضع التطبيق و الأكواد الخاصة به : https://www.dropbox.com/s/d1qxm1jtnx0htqc/ListView.rar?dl=0

اقرأ الدرس التالي :recyclerview