في هذا الدرس سنشرح التعامل مع actionbar من خلا مكتبة actionbarsherlock و ما يميز هذه المكتبة انها تدعم النسخ الاقل من الإندرويد 2.1 علي عكس المكتبة الإفتراضية actionbar في SDK فأنها تدعم فقط من نسخ Android 3.0 11 فما فوق.
في البداية سنقوم بتحميل المكتبة من الموقع هنا او يمكنك تحميلها من المرفقات
نقوم بإستراد المكتبة الي المحررADT Eclipse من خلال
File ⇒ Import ⇒ Existing Projects into Workspace
و من ثم نختار المجلد الخاص بالمكتبة بعد فك ضغطه
———————————————————–
بعد ذالك نقوم بإنشاء مشروع جديد او نقوم بتعديل مشروع موجود و نضيف المكتبة اليه من خلال
File ⇒ properties⇒ Library ⇒Add
و من ثم تختار المكتبة actionbarsherlock
———————————————————-
حتي نتحكم في مكونات و محتوي شريط الحدث نقوم بإضافة ملف xml في مجلد menu مثلا لنسميه menuactionbar.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<menu xmlns:android=”http://schemas.android.com/apk/res/android” >
<item
android:id=”@+id/actioncer”
android:showAsAction=”always”
android:title=”Search”
android:icon=”@drawable/action_searchw”>
</item>
<item
android:id=”@+id/actionref”
android:showAsAction=”ifRoom”
android:title=”Refresh”>
</item>
<item
android:id=”@+id/actionhelp”
android:showAsAction=”ifRoom”
android:title=”Help”>
</item>
<item
android:id=”@+id/action_save”
android:showAsAction=”always”
android:title=”don’t_forget”
></item>
</menu>
ستلاحظ من الكود السابق ان القائمة مكونة من 4 عناصر
و كل عنصر له عدد خصائص :
android:showAsAction | السماح لأولوية الظهور: 1- الظهور دائما 2-الظهور عندما يوجد مكان كافي للعنصر .
android:title | النص الذي يعرض في العنصر في حال لم يكن هناك ايقونه له اما اذا كانت هناك ايقونة للعنصر سيتم استخدامها كمعلومات للعنصر تظهر عند الضغط طويلا علي العنصر.
android:icon | مسار ايقونة العنصر .
—————————————
الآن نذهب الي Activity و سنعدل الـ actionbar الخاص بها و نضيف القائمة السابقة اليه
- نقوم بتعديل الوراثة extends من Activity الي SherlockActivity
public class MainActivity extends SherlockActivity {
و بعد ذالك نضيف الدالة استدعاء القائمة
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inf= getSupportMenuInflater();
inf.inflate(R.menu.menuactionbar,menu);
// menu.findItem(R.id.actioncer);
return true;
}
و اضافة دالة تستدعي عند الضغط علي احد العناصر و ينفذ امر معين ,, مثال :
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.actionhelp:
showMsg (“help”);
break;
case R.id.actioncer:
showMsg (“Search”);
break;
case R.id.actionref:
showMsg (“Refresh”);
break;
}
return true;
}
لتحميل المثال اضغط هنا | يرجي العلم ان جميع الحقوق محفوظة و لا يسمح بالنقل بدون اذن
ليست هناك تعليقات:
إرسال تعليق