الدوال العامه الجزء 1

الإعلانات

الدوال العامه

 

 

 

الدوال العامه الجزء 1

 

addContentView

أُضيفت في المستوى 1

public void addContentView (View view, 
                ViewGroup.LayoutParams params)

 

تضيف محتويات عرض إضافية للنشاط. تضاف بعد أي معاينات موجودة في النشاط — لا تتم إزالة المعاينات الحاليه.

 

الباراميتر 
view المعاينه View: المحتوى المطلوب عرضه.
params المعاملViewGroup.LayoutParams: معاملات المخطط للمعاينه.

 

 

 

 

 

 

 

closeContextMenu

أُضيفت في المستوى 3.

public void closeContextMenu ()

 

برمجياً، تقوم بإغلاق قائمة السياق المفتوحة مؤخراً في الغالب، إذا كانت معروضه.

 

 

 

 

 

 

 

closeOptionsMenu

أُضيفت في المستوى 1.

public void closeOptionsMenu ()

 

برمجياً، تقوم بإغلاق قائمة الخيارات. إذا كانت قائمة الخيارات مغلقة بالفعل، فلن تفعل هذه الدالة شيئاً.

 

 

 

 

 

 

 

createPendingResult

أُضيفت في المستوى 1.

public PendingIntent createPendingResult (int requestCode, 
                Intent data, 
                int flags)

 

تقوم بإنشاء كائن PendingIntent “غرض معلق”، والذي يمكنك تسليمه للأنشطة الأخرى، لإستخدامه في إرسال بيانات النتيجة إلى الإستدعاء الخاص بك (onActivityResult(int, int, Intent..

سيكون الكائن الذي تم إنشاؤه إما “ذو محاولة واحدة” “one-shot” (يصبح غير صالح بعد إرسال النتيجة)، أو متعدد المحاولات (يسمح بإرسال أي عدد من النتائج، من خلاله).

 

الباراميتر 
requestCodeint: كود طلب خاص للمرسل، الذي سوف يتم ربطه ببيانات النتيجه، عند إرجاعها. 

لايمكن للمرسل تعديل هذه القيمه، مما يتيح لك تحديد النتائج الوارده. 
dataIntent: هي بيانات إفتراضية ليتم تزويد النتيجة بها. والتي يمكن للمرسل تعديلها.

يجب ألا تكون هذه القيمة فارغه.
flagsint: قد يكون PendingIntent#FLAG_ONE_SHOT، PendingIntent#FLAG_NO_CREATE، PendingIntent#FLAG_CANCEL_CURRENT، PendingIntent#FLAG_UPDATE_CURRENT.

أو أي من الأعلام، طالما هي مدعومة بواسطة Intent#fillIn للتحكم في الأجزاء الغير محددة من الغرض..

والتي يمكن توفيرها عند حدوث الإرسال الفعلي. تكون القيمه إما 0 أو مزيج من PendingIntent.FLAG_ONE_SHOT، PendingIntent.FLAG_NO_CREATE

PendingIntent.FLAG_CANCEL_CURRENT، PendingIntent.FLAG_UPDATE_CURRENT، PendingIntent.FLAG_IMMUTABLE, Intent.FILL_IN_ACTION..

Intent.FILL_IN_DATA, Intent.FILL_IN_CATEGORIES، Intent.FILL_IN_COMPONENT, Intent.FILL_IN_PACKAGE، Intent.FILL_IN_SOURCE_BOUNDS, Intent.FILL_IN_SELECTOR و Intent.FILL_IN_CLIP_DATA.

 

النتائج 
PendingIntentتقوم بإرجاع "غرض معلق" PendingIntent جديد أو حالي، يطابق الباراميترات "المعاملات" المعطاه.

قد يعيد النتيجة فارغ "null"، فقط إذا تم توفير PendingIntent#FLAG_NO_CREATE.

راجع أيضاً:

PendingIntent

 

 

 

 

 

 

 

 

 

dismissDialog

أُضيفت في المستوى 1.

تم إيقافها في المستوى 15.

public final void dismissDialog (int id)
 

تم إيقاف هذه الدالة في المستوى 15. إستخدم فئة DialogFragment الجديدة مع FragmentManager بدلاً منها؛ وهي متوفرة أيضاً في الإصدارات القديمه من خلال حزمة توافق الأندرويد.

 

 

تقوم برفض مربع حوار تم عرضه مسبقاً من خلال (showDialog(int.

الباراميتر 
idint: معرف مربع الحوار الذي تمت إدارته.
Throws الإلقاء 
IllegalArgumentExceptionإذا لم يتم عرض المعرف مسبقاً من خلال (showDialog(int 

 

راجع أيضاً:

(onCreateDialog(int, Bundle

(onPrepareDialog(int, Dialog, Bundle

(showDialog(int

(removeDialog(int

 

 

 

 

 

 

 

 

 

dismissKeyboardShortcutsHelper

أُضيفت في المستوى 24.

public final void dismissKeyboardShortcutsHelper ()

تقوم برفض شاشة إختصارات لوحة المفاتيح.

 

 

 

 

 

 

 

 

dispatchGenericMotionEvent

 

أُضيفت في المستوى 12.

public boolean dispatchGenericMotionEvent (MotionEvent ev)

تستدعى لمعالجة، أحداث الحركة العامه. يمكنك تجاوز هذه، لإعتراض كافة أحداث الحركة العامه، قبل إرسالها إلى النافذه.

 

تأكد من إستدعاء هذا التنفيذ، لأحداث الحركة العامه، التي يجب معالجتها بشكلٍ طبيعي.

الباراميتر 
evMotionEvent: حدث الحركة العامه.
النتائج 
booleanقيمة منطقية تقوم بإرجاع "صحيح" إذا تم إستهلاك هذا الحدث.

 

 

 

 

 

 

 

 

dispatchKeyEvent

أُضيفت في المستوى 1.

public boolean dispatchKeyEvent (KeyEvent event)

تستدعى لمعالجة الأحداث الرئيسيه. يمكنك تجاوز هذه لإعتراض كافة الأحداث الرئيسية قبل إرسالها إلى النافذه.

تأكد من إستدعاء هذا التنفيذ للأحداث الرئيسية، التي يجب التعامل معها بشكلٍ طبيعي.

الباراميتر 
eventKeyEvent: الحدث الرئيسي.
النتائج 
booleanقيمة منطقية تقوم بإرجاع القيمة "صحيح" إذا تم إستهلاك هذا الحدث.

 

 

 

 

 

 

 

 

 

 

dispatchKeyShortcutEvent

أُضيفت في المستوى 11.

public boolean dispatchKeyShortcutEvent (KeyEvent event)

 

تستدعى لمعالجة حدث الإختصار الرئيسي. يمكنك تجاوز هذا لإعتراض كافة أحداث الإختصار الرئيسية، قبل إرسالها إلى النافذه.

تأكد من إستدعاء هذا التنفيذ، لأحداث الإختصار الرئيسيه، التي يجب معالجتها بشكلٍ طبيعي.

الباراميتر 
eventKeyEvent: حدث الإختصار الرئيسي.
النتائج 
booleanتكون القيمة "صحيح" إذا تم إستهلاك هذا الحدث.

 

 

 

 

 

 

 

 

 

 

dispatchPopulateAccessibilityEvent

أُضيفت في المستوى 4.

public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event)

تستدعى لمعالجة تعداد AccessibilityEvents.

 

الباراميتر 
eventAccessibilityEvent: الحدث.
النتائج 
booleanقيمه منطقية تقوم بإرجاع "صحيح" إذا تم إكمال حدث التعداد.

 

 

 

 

 

 

 

dispatchTouchEvent

أُضيفت في المستوى 1.

public boolean dispatchTouchEvent (MotionEvent ev)

تستدعى لمعالجة أحداث شاشة اللمس. يمكنك تجاوز هذه لإعتراض كافة أحداث شاشة اللمس، قبل إرسالها إلى النافذه.

تأكد من إستدعاء هذا التنفيذ، لأحداث شاشة اللمس، التي يجب معالجتها بشكلٍ طبيعي.

الباراميتر 
evMotionEvent: حدث شاشة اللمس.

 

النتائج 
booleanقيمه منطقية تقوم بإرجاع "صحيح" إذا تم إستهلاك هذا الحدث.

 

 

 

 

 

dispatchTrackballEvent

أُضيفت في المستوى 1.

public boolean dispatchTrackballEvent (MotionEvent ev)

 

تستدعى لمعالجة أحداث كورة التتبع. يمكنك تجاوز هذه لإعتراض كافة أحداث كورة التتبع، قبل إرسالها إلى النافذه.

تأكد من إستدعاء هذا التنفيذ لأحداث كورة التتبع، والتي يجب معالجتها بشكلٍ طبيعي.

الباراميتر 
evMotionEvent: حدث كرة التتبع.

 

النتائج 
booleanقيمه منطقية تقوم بإرجاع "صحيح" إذا تم إستهلاك هذا الحدث.

 

 

 

 

 

 

 

 

 

dump

أُضيفت في المستوى 11.

public void dump (String prefix, 
                FileDescriptor fd, 
                PrintWriter writer, 
                String[] args)

 

تقوم بطباعة حالة النشاط في التدفق المحدد. يتم إستدعاؤها إذا قمت بتشغيل الأمر

“<adb shell dumpsys activity <activity_component_name”.

 

الباراميتر 
prefixString: البادئة المطلوب إضافتها إلى بداية كل سطر من الإخراج.

يجب ألا تكون هذه القيمة فارغه.
fdFileDescriptor: واصف الملف الخام، الذي يتم إرسال المهملات إليه.

قد تكون هذه القيمة فارغه.
writerPrintWriter: محرر الطباعه الذي يجب أن تفرغ حالتك إليه.

سيتم إغلاق هذا من أجلك، بعد رجوعك. يجب ألا تكون هذه القيمة فارغه.
argsString: وسيطات "معطيات" إضافيه، لطلب "التفريغ" المهملات.

قد تكون هذه القيمة فارغه.

 

 

 

 

 

 

 

 

enterPictureInPictureMode

أُضيفت في المستوى 26.

public boolean enterPictureInPictureMode (PictureInPictureParams params)

 

تضع النشاط في وضع “صورة بداخل صورة” إن أمكن، في حالة النظام الحاليه. سوف يتم دمج الباراميترات المحددة، مع باراميترات الإستدعاء السابق لـ..

(setPictureInPictureParams(android.app.PictureInPictureParams.

قد لا يسمح النظام بالدخول في وضع “صورة بداخل صورة” في حالات مختلفه، بما في ذلك، عندما يكون النشاط غير مرئي..

أو إذا كانت الشاشة مقفله، أو إذا كان لدى المستخدم نشاط مثبت.

 

النتائج 
booleanتكون القيمه "صحيح" إذا نجح النظام في وضع هذا النشاط في وضع "صورة بداخل صورة"..

أو إذا كان بالفعل في وضع "صورة بداخل صورة"، (راجع ()isInPictureInPictureMode)..

إذا كان الجهاز لا يدعم وضع "صورة بداخل صورة"، تقوم بإرجاع "خطأ".

أنظر أيضاً:

R.attr.supportsPictureInPicture

PictureInPictureParams


 

 

 

enterPictureInPictureMode

أُضيفت في المستوى 24.

تم إيقافها في المستوى 26.

public void enterPictureInPictureMode ()

 

تضع النشاط في وضع “صورة بداخل صورة” إن أمكن، في حالة النظام الحاليه. أي إستدعاءات سابقة لـ..

(setPictureInPictureParams(android.app.PictureInPictureParams ستبقى سارية، عند الدخول في وضع “صورة بداخل صورة” من خلال هذا الإستدعاء.

 

أنظر أيضاً:

(enterPictureInPictureMode(PictureInPictureParams

R.attr.supportsPictureInPicture

 


 

 

 

 

 

findViewById

أُضيفت في المستوى 1.

public T findViewById (int id)

 

تبحث عن معاينة تم تحديدها بواسطة السمه android:id XML التي تمت معالجتها في (onCreate(Bundle.

 

ملاحظة: في معظم الحالات — بناءً على دعم “compiler” المجمع — يتم إرسال المعاينة الناتجه، إلى نوع الفئة المستهدفة تلقائياً.

إذا كان نوع الفئة المستهدفة غير مقيد، قد يكون الإرسال الصريح ضرورياً.

الباراميتر 
idint: المعرف، للبحث عنه.
النتائج 
Tمعاينة مع معرف معطى، إن وجد، أو، خلاف ذلك ترجع فارغ.

 

أنظر أيضاً:

(View.findViewById(int

(requireViewById(int

 


 

 

 

 

 

 

finish

أُضيفت في المستوى 1.

public void finish ()

 

تستدعى عند إنتهاء نشاطك، ويتوجب إغلاقه. يتم بث ActivityResult مرة إخرى إلى من أطلقه عبر ()onActivityResult.


 

 

 

 

 

finishActivity

أُضيفت في المستوى 1.

public void finishActivity (int requestCode)

 

تقوم بفرض إنهاء نشاط آخر، والذي قد بدأته سابقاً بإستخدام

(startActivityForResult(Intent, int.

 

الباراميتر 
requestCodeint: كود الطلب للنشاط الذي قمت بتقديمه إلى ()startActivityForResult.

إذا كانت هناك عدة أنشطة بدأت بكود الطلب هذا، فسوف يتم إنهاء جميعها.

 

 

 

 

 

 

finishActivityFromChild

أُضيفت في المستوى 1.

public void finishActivityFromChild (Activity child, 
                int requestCode)

 

تستدعى عندما يقوم النشاط الفرعي لهذا النشاط بإستدعاء دالة ()finishActivity الخاصة به.

الباراميتر 
childActivity: النشاط الذي يقوم بإجراء الإستدعاء. يجب ألا تكون هذه القيمة فارغه.
requestCodeint: كود الطلب الذي تم إستخدامه لبدء النشاط.

 


 

 

 

 

finishAffinity

أُضيفت في المستوى 16.

public void finishAffinity ()

 

تقوم بإنهاء النشاط و كذلك كافة الأنشطة الموجودة تحته مباشرة، في المهمة الحاليه، والتي لها نفس التقارب. تستخدم هذه عادة عندما يكون ممكناً، تشغيل تطبيق ما لمهمة أخرى.

(مثل، من ACTION_VIEW لنوع المحتوى الذي تفهمه).. وقيام المستخدم بالتنقل “التبديل” للأعلى، للخروج من المهمه الحاليه، والدخول إلى المهمة الخاصة به. 

في هذه الحاله، إذا تنقل المستخدم، إلى أي أنشطة أخرى للتطبيق الثاني، فينبغي إزالتها كلها من المهمة الأصليه، كجزء من التبديل بين المهام.

لاحظ أن هذه النهاية لا تسمح لك بتسليم النتائج إلى النشاط السابق، وسيتم طرح إستثناء إذا حاولت القيام بذلك.

 

 

 

 

 

 

 

 

finishAfterTransition

أُضيفت في المستوى 21.

public void finishAfterTransition ()

 

تقوم بعكس دخول مشهد إنتقال النشاط،وتشغيل نشاط الإستدعاء لعكس إنتقال خروجه. عند إكتمال إنتقال الخروج، يتم إستدعاء دالة الإنهاء ()finish.

إذا لم يتم إستخدام إنتقال دخول، يتم إستدعاء دالة الإنهاء ()finish فوراً، ويتم تشغيل إنتقال “خروج النشاط”.

 

أنظر أيضاً:

([]ActivityOptions.makeSceneTransitionAnimation(Activity, android.util.Pair


 

 

 

 

 

 

 

 

finishAndRemoveTask

أُضيفت في المستوى 21.

public void finishAndRemoveTask ()

قم بإستدعاء هذه الداله عند إنتهاء نشاطك، ويتوجب إغلاقه، وعندما ينبغي إزالة المهمه بالكامل، كجزء من إنهاء النشاط الأصلي للمهمه.

 

 

 

 

 

 

 

 

 

finishFromChild

أُضيفت في المستوى 1.

public void finishFromChild (Activity child)

تستدعى عندما يقوم النشاط الفرعي لهذا النشاط بإستدعاء دالة ()finish الخاصة به.

التنفيذ الإفتراضي يقوم ببساطة بإستدعاء ()finish لهذا النشاط (الأصلي)، لإنهاء المجموعة بأكملها.

 

الباراميتر 
childActivity: النشاط الذي يقوم بإجراء الإستدعاء. 

 

أنظر أيضاً:

()finish

 


 

 

 

 

 

الدوال العامه الجزء 1

 

getActionBar

أُضيفت في المستوى 11.

public ActionBar getActionBar ()

تقوم بإستيراد مرجع لشريط إجراءات هذا النشاط.

 

النتائج 
ActionBarشريط إجراءات النشاط، أو فارغ إذا لم يحتوي على شريط إجراءات.

 

 

 

 

 

 

getApplication

أُضيفت في المستوى 1.

public final Application getApplication ()

تقوم بإرجاع التطبيق الذي يملك هذا النشاط.

 

النتائج 
Application

 

 

 

 

 

 

 

getCallingActivity

أُضيفت في المستوى 1.

public ComponentName getCallingActivity ()

تقوم بإرجاع اسم النشاط، الذي أستدعى هذا النشاط. وهذا هو الذي سيتم إرسال البيانات في دالة ()setResult إليه.

يمكنك إستخدام هذه المعلومات للتحقق من أن المستلم يسمح بتلقي البيانات.

 

ملاحظه: إذا كان النشاط المُستدعى لا يتوقع تلقي نتيجه (أي أنه لم يستخدم نموذج

(startActivityForResult(Intent, int الذي يتضمن كود الطلب)..

فسوف تكون حزمة الإستدعاء فارغه.

 

النتائج 
ComponentNameاسم مكون النشاط الذي سوف يتلقى ردك، أو فارغ إذا لم يكن هناك شيء.

 

 

 

 

 

 

 

 

getCallingPackage

أُضيفت في المستوى 1.

public String getCallingPackage ()

تقوم بإرجاع اسم الحزمة التي أستدعت هذا النشاط. وهذه هي التي سيتم إرسال البيانات في دالة ()setResult إليها.

يمكنك إستخدام هذه المعلومات للتحقق من أن المستلم يسمح بتلقي البيانات.

ملاحظه: إذا كان النشاط المُستدعى لا يتوقع تلقي نتيجه (أي أنه لم يستخدم نموذج

(startActivityForResult(Intent, int الذي يتضمن كود الطلب)..

فسوف تكون حزمة الإستدعاء فارغه.

قبل Build.VERSION_CODES.JELLY_BEAN_MR2، كانت نتيجة هذه الدالة غير مستقره.

إذا لم تعد العملية التي تستضيف حزمة الإستدعاء قيد التشغيل، فستقوم بإرجاع فارغ، بدلاً من اسم الحزمة المناسب.

يمكنك إستخدام ()getCallingActivity و إستيراد اسم الحزمة منها بدلاً من ذلك.

 

النتائج 
Stringحزمة النشاط التي سوف تتلقى ردك، أو فارغ إذا لم يكن هناك شيء.

 

 

 

 

 

 

 

 

getChangingConfigurations

أُضيفت في المستوى 1.

public int getChangingConfigurations ()

 

إذا تم تدمير هذا النشاط، لعدم تمكنه من التعامل مع التغيير في معامل “باراميتر” التكوين (وبالتالي لا يتم إستدعاء 

(onConfigurationChanged(android.content.res.Configuration )، 

عندها يمكنك إستخدام هذه الداله، لإكتشاف مجموعة التغييرات التي حدثت أثناء عملية التدمير. لاحظ بأنه لا يوجد ضمان بأن تكون هذه التغييرات دقيقه..

(ربما حدثت تغييرات أخرى، في أي وقت)، لذا يجب عليك إستخدام هذه فقط، كتلميح تحسين.

 

النتائج 
intتقوم بإرجاع حقل صغير من معاملات التكوين التي تتغير، كما هو محدد بواسطة فئة التكوين.

 


 

 

 

 

 

getComponentName

أُضيفت في المستوى 1.

public ComponentName getComponentName ()

 

تقوم بإرجاع اسم المكون الكامل لهذا النشاط.

النتائج 
ComponentNameتقوم بإرجاع اسم المكون الكامل لهذا النشاط.

 

 


 

 

 

 

الدوال العامه الجزء 1

 

getContentScene

أُضيفت في المستوى 21.

public Scene getContentScene ()

 

تقوم بإسترجاع المشهد الذي يمثل المحتوى الحالي لهذه النافذه. تتطلب Window#FEATURE_CONTENT_TRANSITIONS

ستقوم هذه الداله بإرجاع “فارغ”، إذا لم يتم تمثيل المحتوى الحالي بواسطة مشهد ما.

النتائج 
Sceneالمشهد الحالي الذي يتم عرضه أو فارغ.

 

 

 

 

 

 

getContentTransitionManager

أُضيفت في المستوى 21.

public TransitionManager getContentTransitionManager ()

 

تقوم بإرجاع TransitionManager المسؤوله عن التحولات الإفتراضيه، في هذه النافذه. تتطلب Window#FEATURE_CONTENT_TRANSITIONS.

 

ستقوم هذه الداله بإرجاع “غير فارغ” بعد تهيئة المحتوى (مثال، بإستخدام (setContentView(View ) إذا تم السماح بـWindow#FEATURE_CONTENT_TRANSITIONS.

 

النتائج 
TransitionManagerمحتوى هذه النافذه TransitionManager أو فارغ إذا لم يتم تعيين شيء.

 

 

 

 

 

الدوال العامه الجزء 1

getCurrentFocus

أُضيفت في المستوى 1.

public View getCurrentFocus ()

تقوم بإستدعاء ()Window.getCurrentFocus في نافذة هذا النشاط، لإرجاع المعاينه المركزة حالياً.

 

النتائج 
Viewتعرض المعاينه الحاليه مع التركيز أو فارغ.

 

أنظر أيضاً: 

()getWindow

()Window.getCurrentFocus

 


 

 

 

 

 

getFragmentManager

أُضيفت في المستوى 11.

تم إيقافها في المستوى 28.

public FragmentManager getFragmentManager ()
تم إيقاف هذه الداله في المستوى 28.

إستخدم ()FragmentActivity.getSupportFragmentManager.

 

تقوم بإرجاع FragmentManager للتفاعل مع الشظايا المرتبطة بهذا النشاط.

النتائج 
FragmentManager

 

 

 

 

 

الدوال العامه الجزء 1

 

getIntent

أُضيفت في المستوى 1.

public Intent getIntent ()

تقوم بإرجاع الغرض الذي بدأ هذا النشاط.

النتائج 
Intent

 

 

 

 

getLastNonConfigurationInstance

أُضيفت في المستوى 1.

تم إيقافها في المستوى 15.

public Object getLastNonConfigurationInstance ()

تقوم بإستيراد بيانات مثيل “غير التكوين”، التي تم إرجاعها سابقاً بواسطة ()onRetainNonConfigurationInstance.

ستكون هذه متاحة من إستدعاء (onCreate(Bundle و ()onStart الأولي، إلى المثيل الجديد، مما يتيح لك إستخراج أي حالة ديناميكية مفيده من المثيل السابق.

 

لاحظ أنه يجب إستخدام البيانات التي تقوم بإسترجاعها هنا، فقط كتحسين للتعامل مع تغييرات التكوين.

يجب أن تكون قادراً دائماً، على التعامل مع، الحصول على مؤشر فارغ، ويجب أن يظل النشاط قادراً على إستعادة نفسه إلى حالته السابقة ..

(من خلال آلية (onSaveInstanceState(android.os.Bundle العادية)، حتى لو كانت هذه الوظيفة تقوم بإرجاع فارغ.

ملاحظه: في معظم الحالات، يجب عليك إستخدام واجهة برمجة تطبيقات الشظايا، (Fragment#setRetainInstance(boolean بدلاً من ذلك.

متوفرة أيضاً في الإصدارات الأقدم من خلال مكتبات دعم الأندرويد.

النتائج 
Objectالكائن الذي تم إرجاعه سابقاً بواسطة ()onRetainNonConfigurationInstance.

 

 

 

 

 

الدوال العامه الجزء 1

 

getLayoutInflater

أُضيفت في المستوى 1.

public LayoutInflater getLayoutInflater ()

 

ملائمة لإستدعاء ()Window.getLayoutInflater.

 

النتائج 
LayoutInflaterهذه القيمة لن تكون فارغة أبداً.

 

 

 

 

 

 

 

getLoaderManager

أُضيفت في المستوى 11.

تم إيقافها في المستوى 28.

public LoaderManager getLoaderManager ()
تم إيقاف هذه الداله في المستوى 28.

إستخدم ()FragmentActivity.getSupportLoaderManager.

 

تقوم بإرجاع LoaderManager لهذا النشاط، وإنشائه عند الحاجه.

النتائج 
LoaderManager

 

 


أضغط على أسماء الدوال للإطلاع على المقال باللغة الإنجليزية.

الإعلانات

13 thoughts on “الدوال العامه الجزء 1”

اترك رد