منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
LogIn App: Intents #5 - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم برمجة الهواتف (http://vb4arb.com/vb/forumdisplay.php?fid=208)
+--- قسم : قسم مقالات Xamarin.Android (http://vb4arb.com/vb/forumdisplay.php?fid=209)
+--- الموضوع : LogIn App: Intents #5 (/showthread.php?tid=22939)



LogIn App: Intents #5 - Sajad - 15-12-17

بسم الله الرحمن الرحيم
(رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي)


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


سنتناول في هذا الدرس كيفية التعامل مع الـ Intents واستخدامها لنقل البيانات او المعلومات بين الواجهات (Layouts).


سنقوم اولاً باضافة Layout و Activity للتطبيق وسنقوم باستخدام Intent لنقل المعلومات الـLayout المضافة.

- لاضافة Layout اتبع الخطوات التالية:

Solution Explorer-->Resources-->Layout--->RightClick-->Add-->NewItem-->AndroidLayout

ثم قم بتسميته SecondLayout ثم اضغط على Add

- لاضافة Activity لربط الـLayout الجديدة بها اتبع الخطوات التالية:

Solution Explorer-->TestAndroidApp-->RightClick-->Add-->NewItem-->Activity

وقم بتسميته SecondActivity ثم اضغط على Add.


الان انتقل الى MainActivity واستبدل كود اظهار الرسالة بالكود التالي داخل الحدث okclick:

PHP كود :
Intent mainIntent = new Intent(thistypeof(SecondActivity));
mainIntent.PutExtra("username"userName);
mainIntent.PutExtra("password"password);
StartActivity(mainIntent); 


Intent: عبارة عن Class يقوم بوظيفة اظهار layout اخرى وايضا يقوم بارسال معلومات من Layout الى اخرى.

في السطر الاول يتم تعريف Instance من Intent ثم ذكر اسم الـActivity الذي يربط الـLayout التي تستقبل المعلومات المرسلة.

في السطر الثاني والثاني يتم استخدام دالة PutExtra لاضافة المعلومات الى الـIntent على طريق Key/Value حيث سيتم استخراج المعلومات من الIntent بذكر الـKey فقط.

في السطر الرابع نستخدم دالة StartActivity لارسال Intent الى الـActivity التي تم ذكرها في تعريف الـIntent.


الان قم بتعريف TextView داخل SecondLayout بالشكل التالي:
PHP كود :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/showText"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Text From Main Layout"
        android:layout_gravity="center" />
</LinearLayout> 

ثم قم بتعريف field داخل SecondActivity من الكلاس (الاداة) TextView بهذا الشكل:
PHP كود :
TextView _showText

وقم بكتابة السطر التالي داخل دالة onCreate في SecondActivity:

PHP كود :
SetContentView(Resource.Layout.SecondLayout); 

الخطوة التالية ستكون لكيفية استخراج البيانات من Intent المرسلة من MainActivity:
PHP كود :
_showText FindViewById<TextView>(Resource.Id.showText);

 _showText.Text Intent.GetStringExtra("username") + Intent.GetStringExtra("password"); 

حيث يتم ربط الاداة TextView عن طريق الـId بـ showText_ ثم يتم استخراج المعلومات عن طريق دالة GetStringExtra وذلك بذكر الـKeys فقط كما موضح في السطر الثاني من الكود أعلاه.


نلقاكم في درس آخر ان شاءالله

والحمد لله رب العالمين


RE: LogIn App: Intents #5 - sendbad100 - 16-12-17

تسلم يدك
الله يكتب اجرك


RE: LogIn App: Intents #5 - حريف برمجة - 16-12-17

جُزيت خيراً اخي سجاد .