استعراض البيانات

من اﻷشياء المهمة و الضرورية التي على المبرمج إجادتها أو اتقانها, هي كيفية استعراض البيانات, سواء كانت هذه اﻷخير عبارة عن صور أو نصوص أو غير ذلك, بطريقة سلسة و واضحة تسهّل على المستخدم قرائتها أو مراجعتها, و لهذا الغرض يوفر لنا نظام أندرويد مجموعة من الكلاسات الجاهزة لهذا الغرض, و بعض هذه الكلاسات و بعض هذه الكلاسات تستمد خصائصها و دوالها من الكلاس AdapterView (هناك كلاسات أخرى لها نفس المهمة, Adaptres) الذي هو بدوره عبارة عن Subclass للكلاس ViewGroup الشيء الذي يسهل علينا التعامل مع هذا ال AdapterView ﻷنه كما رأينا في مقال سابق أن جل العناصر المرئية تستمد خصائصها من كلاس View و بما أن ال ViewGroup هي بدورها Subclass للكلاس View بالتالي هذا التسلسل في استمداد الخصائص يكون علاقة بين العناصر المرئية و ال Adaptres.

كما ذكرنا هناك عدة كلاسات تعنى بنفس المهمة أي إظهار البيانات, و من أبسطها و أسهلها كلاس ArrayAdapter فهو يجعل البيانات في هيئة مصفوفة بسيطة, كمثال ننشئ layout تحتوي على عنصرين فقط هما ListView و TextView اللذان على التوالي يحملان المعرف, المعرف من طرف النظام سابقا, @android:id/empty و @android:id/empty


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/empty" />

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</RelativeLayout>

ال Activity سنستعمل نوع خاص منها ListActivity يتميز بخصائص التعرف المباشر على العناصر التي سبق تعريفها في الlayout لذا لا يحتاج اﻷمر إلى تدخل منا, الشفرة ستكون على الشكل التالي :


package com.androcode.datacollections;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;

public class DataCollectionsActivity extends ListActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data_collections);

// مصفوفة بيانات لأسماء بعض المدن
String[] cities = new String[] { "Tetouan", "Rabat", "Nouakchott", "Sert", "Baghdad", "Layoun", "Algeria",
"Tunisie", "Cairo", "Damascus", "Marrakech", "Muscat", "Sana'a", "Amman" };

// إنشاء أدبتر ﻷجل استعراض بيانات المصفوفة
// كل مدينة سيتم استعراضها في عنصر يحمل المعرف
// simple_list_item_1
ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, cities);

// ربط الأدبتر بالعنصر
// ListView
setListAdapter(adapter);

}

}

النتيجة:
arrayadapter listview

في حالة ما إذا تم الضغط على كل عنصر فإنه يتم تحفيز الحدث onItemClick الخاص ب ListView و يتم ذلك بواسطة الشفرة الآتية:


@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);

// تعريف العنصر المضغوط الذي يحتوي على اسم المدينة
TextView txtCity = (TextView) v;

// استخراج اسم المدينة
String city = txtCity.getText().toString();

// اظهار اسم المدينة بواسطة اشعار, بمدة قصيرة
Toast.makeText(this, city, Toast.LENGTH_SHORT).show();
}

إن شاء الله في المقال التالي سنوضح كيفية عرض البيانات بشكل مخصص و احترافي, ليس فقط عرض نصوص بسيطة و إنما عرض بيانات مركبة من صور و نصوص و غيرهما.

إذا كان لديك أي استفسار فلا تتردد في طرحه أو مراسلتنا, مستعدون لتوضيحه.

تعليقان على “استعراض البيانات

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Time limit is exhausted. Please reload CAPTCHA.