الاثنين، 26 نوفمبر 2012

الدرس السابع : التنقل ما بين النوافذ باستخدام Intent


التنقل ما بين النوافذ باستخدام Intent

يمكن أن يحتوي تطبيق الاندرويد إلي أكثر من نافذة ( Activity)
و للتنقل ما بين النوافذ نستخدم كائن يسمي Intent
يتم الإعلان عن Intent  في النافذة الأولي بالصيغة التالية



Intent  اسمه  = new Intent(النافذة الأولي , النافذة الثانية) ;

و يتم تنفيذه لإظهار النافذة الثانية باستخدام
startActivity ( اسمه) ;

مثال:
Intent i = new Intent(firstActivity.this , secondActivity.clss);
startActivity( i ) ;

سنقوم بانشاء مشروع يحتوي علي شاشتين كما بالصورة





و عند الضغط علي زر next يتم الانتقال الى الشاشة الثانية

قم بانشاء مشروع جديد باسم TwoActivities 

قم بتسمية الـشاشة الاولي FirstActivity

 افتح ملف xml الخاص بـ activity_first
غير نوع التخطيط الي Linearlayout من
Refactor >>Android >> Change layout >> Linearlayout
عدل الكود xml ليصبح يالشكل التالي


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
      
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="First screen" />
   
   
      <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="doNext"
        android:text="Go to next" />

  </LinearLayout>

تم انشاء زر و تم تحديد الاجراء doNext للحدث Click  له

الان نريد ان نضيف النافذة الثانية للمشروع
لعمل ذلك اضغط علي الرمزر اضافة كما بالصور

اختر كما بالصورة

قم بتسميتها SecondActivity

ثم اضغط next  ثم Finish

افتح ملف Xml  الخاص ب activity_second
عدل الخاصية text  للـ TextView  لتصبح
android:text="this second activity"


افتح ملف الجافا FirstActivity.java


اضف الاجراء التالي بعد الحدث onCreate :
public void doNext(View view){
      Intent i = new Intent(FirstActivity.this ,SecondActivity.class);
     
      startActivity(i);
     
    }

ليصبح الكود كامل كما بالصورة :



import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;

public class FirstActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
    }

    public void doNext(View view){
      Intent i = new Intent(FirstActivity.this , SecondActivity.class);
            startActivity(i);
     
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_first, menu);
        return true;
    }
}



قم بحفظ الكل 




قم بتشغيل البرنامج

شرح الدرس فيديو من هنا

ليست هناك تعليقات:

إرسال تعليق