بسم الله الرحمن الرحيم
الكثير والكثير من المبتدئين عانوا في ما يخص ” القائمة ” في تطبيقات الاندرويد, فهي موسوعة ضخمة ولا تنتهي دروسها, و إن شاء الله هذا أول درس عنها في موقعنا, وهو أبسط
طريقة لبرمجة القائمة, الكثير لو بحث في الانترنت عن ابسط طريقة, يجدها غير مفهومة, أقصد المبتدئين طبعاً, فالمستويات المتقدمة سوف تفهم أمرها بالتأكيد.
لذلك كان من الواجب عليّ, توضيح أبسط طريقة لاستخدامها بعيداً عن كل تعقيد, ولمن لا يعرفها فهي تستخدم بكثرة في تطبيقات الاندرويد, تستطيع من خلالها سرد اي محتوى على شكل قائمة,
بعدد غير منتهي, ما يميز استخدامها عند ربطها بقواعد البيانات فهي تجلب المحتوى كاملاً, وانت لم تقم سوا بتعريف خانة واحدة, من ثم تلقائي على عدد الخانات الموجودة بالقاعدة يتم إنشاء حقول بالقائمة
باختصار يحتاجها الكثير, ومهم أن يعرفها كل من يريد برمجة تطبيقات الاندرويد, فهي توفر الكثير من الوقت, سوف تلاحظون في درس اليوم إنها أكثر من بسيطة, ملئ بيانات, وهي تلقائي على عدد البيانات المدخلة,
سوف تنشأ حقول لها بالقائمة لتظهر كاملة, وتستطيع برمجة كل خانة منها, او جميع إلخ, لديك الكثير من التعاملات معها, وإن شاء الله في دروس متقدمة سوف نتكلم عنها أكثر وأكثر.
لمعاينة درس اليوم بالفيديو :
+++ للمبتدئين قم بإنشاء اكتفتي + لياوت, في الحالة الافتراضية تجد لديك الافتراضية, وربطها ببعضها, لاستخدام القائمة فيها. لتطبيق المثال الموجود معنا بالفيديو قم بوضع عنصر ليست فيو داخل اللياوت
واعطها اي دي : list
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/Andrody.com" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <ListView android:id="@+id/list" android:layout_height="wrap_content" android:layout_width="match_parent"> </ListView> </LinearLayout>
الكود المستخدم :
public class MainActivity extends Activity { ListView listView ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list); String[] AndRody = new String[] { "WebSite", "FaceBook", "YouTube",}; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, AndRody); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if(position == 0){ Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://andrody.com/")); startActivity(i); } if(position == 1){ Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://m.facebook.com/andrody2015")); startActivity(i); } if(position == 2){ Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://m.youtube.com/channel/UCAGUgnnL47fU3TMRhKhkQwQ")); startActivity(i); } } }); } }
شرح الكود المستخدم :
// تعريف عنصر قائمة من نوع لست فيو
ListView listView ;
// ربط الاكتفتي باللياوت
setContentView(R.layout.activity_main);
// ربط القائمة التي عرفناها سابقاً بالاي دي الخاص بها – الاي دي حسب الموجود داخل اللياوت
listView = (ListView) findViewById(R.id.list);
// عرفنا قائمة سترنج – سلسلة نصوص – بإسم اندرودي ووضعنا فيها ثلاثة عناصر
String[] AndRody = new String[] { “WebSite“, “FaceBook“, “YouTube“,};
// عرفنا سلسلة ادابتر من نوع سترنج بإسم ادابتر وربطنها بلياوت معرف سابقاً لدى حزم الاندرويد كذلك ربطناها بالاي دي معرف سابقاً للعناصر وربطناها بسلسة السترنج التي اسمها اندرودي
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, AndRody);
// ربطنا القائمة بـ ادابتر المعرف سابقاً
listView.setAdapter(adapter);
// عند الضغط على عناصر القائمة
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
// اذا تم الضغط على الزر الاول نفذ الامر وهو الانتقال للويب وفتح الموقع الالكتروني
if(position == 0){
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(“https://andrody.com/“));
startActivity(i);
}
// حدد رقم العنصر الذي تريد لبرمجته بدل حرف اكس واعطه الامر الذي تريد بعد الضغط عليه
if(position == x){
يوجد طرق كثيرة لبرمجة العناصر, ولكن بينت ان هذه ابسط استخدام لها وللمبتدئين, وان شاء الله في دروس قادمة سوف نتعلم عنها أكثر وأكثر , انتظرونا بكل جديد وحصري, كما أرجوا دعمنا ونشر مواضيعنا
لتصل لأكبر عدد من المستفدين, , , وفي امان الله أصدقائي 🙂
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, AndRody);
مافهت هذا الادابتر ايش فايدته
وليش سوينا بهذي الطريقه أرجو شرحها أخي بارك الله فيك وكثر من أمثالك أستفدت كثير منك
اهلا اخي .. لو لاحظت في الدروس المتقدمة إننا سوف نتخذ عوضاً عنه لياوت في مشروعنا لتنسيقه.
اما هنا ربطناه بـ لياوت معرفة مسبقاً في ملفات حزمة الاندرويد لاحظ عنوان او مسار اللياوت :
android.R.layout.simple_list_item_1
يبدأ بـ android أي ليس موجود لدينا .. ولكن عندما يكون لدينا لياوت بديلة نضعها هي ولكن يجب ان تكون في مشروعنا.
وأما عن android.R.id.text1 فهذا الآي دي او المعرف للنص الموجود بداخل هذه اللياوت.
AndRody فهي المصفوفة التي سوف يتم وضع النصوص التي بداخلها .. مكان النص المعرف بداخل هذه اللياوت.
إن شاء الله وصلت الفكرة .. وبالتوفيق لك 🙂
جزاك الله خيراً
ولو اني اريد عند الضغط على اي عنصر ان يفتح لي صفحة اخرى “اكتفتي”
جربت هذا الكود ولم ينفع معي :
Intent i = new Intent( this, RasActivity.class));
startActivity(i);
ماالعمل يااخي ؟؟؟
شكرا لمجهوداتكم … اتمنى لكم دوام التقدم والنجاح