47 : اندرويد : الحفاظ على التوافقية مع الاصدارات القديمة Remaining Backward Compatible

 

ملاحظة : الموضوع عبارة عن حلقة من حلقات سلسلة برمجة وتطوير اندرويد Android Development

اندرويد :   الحفاظ على التوافقية مع الاصدارات القديمة Remaining Backward Compatible

السلام عليكم ورحمة الله وبركاته

 سوف نتعلم ضمن هذا الدرس مايلي:

  1. تحديد الحد الادنى المستهدف من مستويات API
  2. تزويد صندوق البحث للاجهزة القديمة
  3. التحقق من Android Build Version  في زمن التنفيذ

إن كل من عنصر وشريط الاحداث action bar  متوافران فقط منذ الاصدار 3.0 لاندرويد فما اعلى.

لكي ندعم منصات العمل القديمة, بإمكاننا العودة لاستخدام صندوق البحث search dialog.

إن صندوق البحث search dialog  عبارة عن واجهة مستخدم مزودة من قبل النظام , والتي تتوضع في اعلى التطبيق عند استدعائها.

تحديد الحد الادنى المستهدف من مستويات API

لكي نعد صندوق البحث search dialog  , يجب في البداية ان نصرح ضمن ملف ال manifest – عن الترميز ادناه – في التطبيقات التي ترغب بان تدعم الاجهزة القديمة , (وكذلك الاصدارات اللاحقة للاصدار 3.0).

عندما تقوم بذلك, يقوم تطبيقك بشكل اوتوماتيكي باستخدام شريط الاحداث action bar ضمن اندرويد 3.0 او اعلى , ويستخدم نظام القائمة التقليدي traditional menu system  على الاجهزة القديمة.

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" />

<application>
...

تزويد الاجهزة القديمة بصندوق البحث Provide the Search Dialog for Older Devices

لكي تقوم باستدعاء صندوق البحث على الاجهزة القديمة , قم باستدعاء التابع onSearchRequested() في  كل مكان يقوم به السمتخدم باختيار عنصر القائمة المخصص للبحث من خيارات القائمة.

وبما ان اندرويد ذو الاصدار 3.0 فما اعلى يظهر SearchView  في شريط الاحداث action bar(كما تم توضيحه في بداية الدرس), لذلك فإن الاصدارات الاقدم من 3.0 سوف تستدعي التابع onOptionsItemSelected()عندما يختار المستخدم عنصر البحث من القائمة.

 

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.search:
            onSearchRequested();
            return true;
        default:
            return false;
    }
}

التحقق من Android Build Version  في زمن التنفيذ

في زمن التنفيذ, تحقق من نسخة الجهاز لتتاكد من عدم حصول استخدام غير مدعوم ل SearchView على الاجهزة القديمة.

في الترميز التالي , يتم ذلك عبر التابع onCreateOptionsMenu() :

 

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        SearchManager searchManager =
                (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView =
                (SearchView) menu.findItem(R.id.search).getActionView();
        searchView.setSearchableInfo(
                searchManager.getSearchableInfo(getComponentName()));
        searchView.setIconifiedByDefault(false);
    }
    return true;
}

 وبهذا القدر ننهي هذه اللمحة عن امكانية البحث ضمن اندرويد , وإلى لقاء قريب ضمن موضوع اخر من السلسلة المترجمة حول اندرويد

وإلى ذلك الحين استودعكم الله والسلام عليكم ورحمة الله وبركاته.

Advertisements

, , , , ,

  1. أضف تعليق

اترك رد

Please log in using one of these methods to post your comment:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: