التنقل ما بين النوافذ باستخدام Intent
يمكن أن يحتوي
تطبيق الاندرويد إلي أكثر من نافذة ( Activity)
و للتنقل ما بين
النوافذ نستخدم كائن يسمي Intent
Intent اسمه
= new Intent(النافذة الأولي , النافذة الثانية) ;
و يتم تنفيذه لإظهار
النافذة الثانية باستخدام
startActivity
( اسمه) ;
مثال:
Intent i
= new Intent(firstActivity.this
, secondActivity.clss);
startActivity(
i ) ;
سنقوم بانشاء مشروع
يحتوي علي شاشتين كما بالصورة
قم بانشاء مشروع
جديد باسم 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;
}
}
قم بحفظ الكل
قم بتشغيل البرنامج
شرح الدرس فيديو من هنا
ليست هناك تعليقات:
إرسال تعليق