تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Log In App Coding #4
#1
بسم الله الرحمن الرحيم
(رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي)


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


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


كما ذكرنا سابقا أن لكل واجهة (Layout) كلاس خاص بها حيث من خلال الكلاس نتمكن من الوصول الى الادوات الموجودة على الواجهة (Layout).


للوصول الى الادوات المراد استعمالها يجب أن نعرف الـId الخاص بالأدوات حيث من خلالها يتم التعرف على الاداة واستخدامها.

الان لننتقل الى الكلاس MainActivity.cs لنتعرف على خطوات ربط الادوات:

1- يجب تعريف متغيرات او Instances من الادوات التي سنستخدمها، حيث كل أداة عبارة عن كلاس داخل Android.Widget بالشكل التالي:

PHP كود :
EditText _username_password;
 
Button _ok_cancel

حيث سيكون MainActivity بالشكل التالي:
PHP كود :
using Android.App;
using Android.Widget;
using Android.OS;

namespace 
TestAndroidApp
{
 
   [Activity(Label "TestAndroidApp",Theme "@style/MyCustomTheme"MainLauncher true)]
 
   public class MainActivity Activity
    
{
 
       EditText _username_password;
 
       Button _ok_cancel;

 
       protected override void OnCreate(Bundle savedInstanceState)
 
       {
 
           base.OnCreate(savedInstanceState);

 
           // Set our view from the "main" layout resource
 
           SetContentView(Resource.Layout.Main);
 
       }
 
   }

قبل أن ننتقل الى الخطوة التالية يجب أن تعرف أنه لتحميل الواجهة من خلال الـActivity يجب ذكر السطر التالي:
PHP كود :
SetContentView(Resource.Layout.Main); 

فمن خلال هذه الدالة يتم ربط الكلاس بالواجهة من خلال اسم الـLayout، وهي بطبيعة الحال Main حيث يتم الوصول الى اسم الواجهة من خلال Resource.Layout. اسم الواجهة.

و
PHP كود :
MainLauncher true 

هي لتحديد الواجهة التي ستظهر أولاً عند تنفيذ التطبيق.


2- ربط الادوات بالتعاريف داخل دالة onCreate:
PHP كود :
_username FindViewById<EditText>(Resource.Id.userName);
_password FindViewById<EditText>(Resource.Id.password);

_ok FindViewById<Button>(Resource.Id.okButton);
_cancel FindViewById<Button>(Resource.Id.cancelButton); 

لكي نصل الى الـId لأداة معينة داخل الواجهة نستخدم دالة FindViewById، حيث كل أداة داخل الـLayout عبارة عن View.


3- حدث Click لأداة  okButton و cancelButton: هذا الحدث يكتب بهذا الشكل داخل دالة onCreate
PHP كود :
_ok.Click += delegate
              
{
 
                 if (_username.Text == userName && _password.Text == password)
 
                 {
 
                     Toast.MakeText(this"You are logged in"ToastLength.Short).Show();
 
                 }
 
                 else
                  
{
 
                     Toast.MakeText(this"Try again"ToastLength.Short).Show();
 
                 }
 
             };

_cancel.Click += delegate
              
{
                  Finish();
              }; 

* يمكن كتابة الاحداث بطرق مختلفة اضافة الى الطريقة أعلاه.


يمكن كتابة الحدث (okButton كمثال) كما موضح أدناه في الكلاس Activity:
PHP كود :
using Android.App;
using Android.Widget;
using Android.OS;

namespace 
TestAndroidApp
{
 
   [Activity(Label "TestAndroidApp"Theme "@style/MyCustomTheme"MainLauncher true)]
 
   public class MainActivity Activity
    
{
 
       EditText _username_password;
 
       Button _ok_cancel;

 
       string userName "Xamarin";
 
       string password "Android";

 
       protected override void OnCreate(Bundle savedInstanceState)
 
       {
 
           base.OnCreate(savedInstanceState);

 
           // Set our view from the "main" layout resource
 
           SetContentView(Resource.Layout.Main);
 
           //

 
           _username FindViewById<EditText>(Resource.Id.userName);
 
           _password FindViewById<EditText>(Resource.Id.password);

 
           _ok FindViewById<Button>(Resource.Id.okButton);
 
           _cancel FindViewById<Button>(Resource.Id.cancelButton);

 
           _ok.Click += _ok_Click;

 
           _cancel.Click += delegate
              
{
 
                 Finish();
 
             };
 
       }

 
       private void _ok_Click(object senderSystem.EventArgs e)
 
       {
 
           if (_username.Text == userName && _password.Text == password)
 
           {
 
               Toast.MakeText(this"You are logged in"ToastLength.Short).Show();
 
           }
 
           else
            
{
 
               Toast.MakeText(this"Try again"ToastLength.Short).Show();
 
           }
 
       }
 
   }




4- دالة Toast هي دالة لعرض رسالة ما للمستخدم.


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

والحمد لله رب العالمين
الرد }}}
تم الشكر بواسطة: sendbad100 , محمد كريّم
#2
احسنت بارك الله فيك ،،
الرد }}}
تم الشكر بواسطة: sendbad100 , Sajad


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم