آموزش برنامه نویسی اندروید [جلسه سوم – جابجایی بین اکتیویتی‌ها]

دسته بندی: اندروید, توسعه دهنده ۱۱ دی ۱۳۹۵ 59 بازدید

آموزش برنامه نویسی اندروید [جلسه سوم – جابجایی بین اکتیویتی‌ها]

آموزش برنامه نویسی اندروید [جلسه سوم – جابجایی بین اکتیویتی‌ها]

همانطور که می دانید مدتی است در آی بلد در حال آموزش برنامه نویسی اندروید هستیم. در درس اول با مقدمات کار و آماده سازی برای ورود به دنیای برنامه نویسی اندروید آشنا شدید و در جلسه دوم نیز با ساختارهای کلی و اصلی در طراحی اپلیکیشن های اندرویدی بخوبی آشنا شدید.

در این درس که جلسه سوم آموزش برنامه نویسی اندروید در آی بلد محسوب می گردد، می خواهیم جابجا شدن بین اکتیویتی‌ها را به شما عزیزان آموزش دهیم. لازم به ذکر است که این آموزش ها فعلا ترتیبی هستند. پس ابتدا باید دو جلسه قبل را خوانده باشید.

هر صفحه از رابط کاربری در اندروید توسط یک اکتیویتی (Activity) اجرا می شود. در توسعه اپلیکیشن های اندروید ممکن است با شرایطی مواجه شویم که نیاز به جابجایی بین صفحات مختلف یعنی اکتیویتی‌های مختلف شویم. در این درس می خواهیم به شما آموزش دهیم که چگونه می توان بین دو Activity مختلف در اپلیکشن های اندروید جابجا شویم و نیز در حین جابجایی اطلاعاتی را ارسال یا دریافت کنیم.

قبل از اینکه بخواهیم شروع نماییم، بگذارید تصور کنیم که شما یک پروژه جدید را همانطور که در درس اول توضیح دادیم ایجاد کرده اید و علاوه بر اکتیویتی پیشفرض یک اکتیویتی جدید به نام SecondScreen.java را به آن اضافه کرده اید.

باز کردن یک اکتیویتی جدید

برای باز کردن یک اکتیویتی جدید باید یکی از دو دستور زیر را استفاده کنید:

 
startActivity()
 

یا

 
	
startActivityForResult()
 

دستور کلی باز کردن یک اکتیویتی جدید در زیر آورده شده:

 
	
Intent i = new Intent(getApplicationContext(), SecondScreen.class);
StartActivity(i);
 

ارسال پارامتر و داده به اکتیویتی ها

برای ارسال داده از یک اکتیویتی به اکتیویتی دیگر از دستور

 putExtra() 

استفاده می کنیم. در زیر روش استاندارد برای ارسال مقادر از اکتیویتی به اکتیوتی های دیگر را برایتان آورده ایم:

 
	
i.putExtra("key", "value");
 
// Example of sending email to next screen as
// Key = 'email'
// value = 'myemail@gmail.com'
i.putExtra("email", "myemail@gmail.com");
 

 

دریافت مقادیر ارسال شده از اکتیویتی ‌قدیمی در اکتیویتی جدید:

 putExtra() 

کد کامل دریافت مقادیر ارسالی از یک اکتیویتی به اکتیوتی دیگر در زیر آورده شده که بخوبی نشان می دهد چگونه باید اینکار را انجام داد:

 
	
Intent i = getIntent();
i.getStringExtra("key");
 
// Example of receiving parameter having key value as 'email'
// and storing the value in a variable named myemail
String myemail = i.getStringExtra("email");
 

 

بستن اکتیویتی ها

همانطور که در جلسه اول هم توضیح دادیم، اکتیویتی ها را میتوان به فرم ها در اپلیکیشن های ویندوزی تشبیه کرد. پس بسیار پیش می آید که نیاز به بستن یک اکتیویتی در اپلیکیشن اندرویدی مورد نظر خود داشته باشید. برای بستن هر اکتیویتی از کد زیر استفاده نمایید:

 
	
finish();
 

 

اضافه نمودن اکتیویتی ها به فایل AndroidManifest.xml

اگر بخواهید از چند اکتیویتی در اپلیکیشن خود استفاده کنید باید تک تک آنها را در فایل AndroidManifest.xml تعریف نمایید. در غیر این صورت با پیام خطای Force Close مواجه خواهید شد.

برای معرفی هر اکتیویتی کافیست در بین تگ <application> از کد زیر برای هر مورد از اکتیویتی ها استفاده کنید.

آموزش برنامه نویسی اندروید [جلسه سوم – جابجایی بین اکتیویتی‌ها]

 

شروع یک پروژه جدید برای یادگیری این درس

نظر شخصی ما را اگر بخواهید می گوییم هیچ چیز مانند تمرین عملی نمی تواند باعث یادگیری برنامه نویسی گردد، حالا به هر زبانی که باشد، پس بگذارید کار را با یک مثال انجام دهیم. یک پروژه جدید ایجاد کنید و نام آن را androidswitchviews بگذارید. سپس در پوشه layouts دو فایل جدید با نام هایscreen1.xml و screen2.xml ایجاد کنید. در بخش Activityy ها نیز دو فایل جدید با نام هایFirstScreenActivity.java و SecondScreenActivity.java بسازید. در تصویر زیر می توانید بخوبی مشاهده کنید که پس از اضافه کردن این موارد، ساختار پروژه چگونه خواهد شد

ما نمیخواهیم کار را زیاد پیچیده کنیم. همانطور که در درس دوم نیز اشاره کردیم اگر کدها برای شما نا آشنا هستند اصلا نگران این موضوع نباشید چرا که رفته رفته آنقدر با آنها سرو کار خواهید داشت که خود به خود برایتان مفهوم تر می شوند.

خب، حالا کد زیر را در فایل screen1.xml که قبلا آن را به پروژه اضافه کرده ایم قرار دهید:

آموزش برنامه نویسی اندروید [جلسه سوم – جابجایی بین اکتیویتی‌ها]

 

شکل گرافیکی این صفحه به صورت زیر خواهد بود:

آموزش برنامه نویسی اندروید [جلسه سوم – جابجایی بین اکتیویتی‌ها]

حالا فایل FirstScreenActivity.java را بز کرده و کد زیر را هم در این فایل قرار دهید و آن را ذخیره نمایید:

 
package com.example.androidswitchviews;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
public class FirstScreenActivity extends Activity {
    // Initializing variables
    EditText inputName;
    EditText inputEmail;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen1);
 
        inputName = (EditText) findViewById(R.id.name);
        inputEmail = (EditText) findViewById(R.id.email);
        Button btnNextScreen = (Button) findViewById(R.id.btnNextScreen);
 
        //Listening to button event
        btnNextScreen.setOnClickListener(new View.OnClickListener() {
 
            public void onClick(View arg0) {
                //Starting a new Intent
                Intent nextScreen = new Intent(getApplicationContext(), SecondScreenActivity.class);
 
                //Sending data to another Activity
                nextScreen.putExtra("name", inputName.getText().toString());
                nextScreen.putExtra("email", inputEmail.getText().toString());
 
                Log.e("n", inputName.getText()+"."+ inputEmail.getText());
 
                startActivity(nextScreen);
 
            }
        });
    }
}
 

فایل SecondScreenActivity.java را نیز باز کرده و کد زیر را هم در این فایل قرار داده و ذخیره سازید:

 
package com.example.androidswitchviews;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class SecondScreenActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen2);
 
        TextView txtName = (TextView) findViewById(R.id.txtName);
        TextView txtEmail = (TextView) findViewById(R.id.txtEmail);
        Button btnClose = (Button) findViewById(R.id.btnClose);
 
        Intent i = getIntent();
        // Receiving the Data
        String name = i.getStringExtra("name");
        String email = i.getStringExtra("email");
        Log.e("Second Screen", name + "." + email);
 
        // Displaying Received data
        txtName.setText(name);
        txtEmail.setText(email);
 
        // Binding Click event to Button
        btnClose.setOnClickListener(new View.OnClickListener() {
 
            public void onClick(View arg0) {
                //Closing SecondScreen Activity
                finish();
            }
        });
 
    }
}
 

حالا فایل صفحه دوم که نامش را screen2.xml گذاشته بودیم را باز کنید و کد زیر را نیز درون این فایل قرار دهید:

آموزش برنامه نویسی اندروید [جلسه سوم – جابجایی بین اکتیویتی‌ها]

در نهایت فایل AndroidManifest.xml پروژه را باز کنید و تغییرات لازم را در ان ایجاد نمایید تا دقیقا شبیه به کد زیر شود:

کار تمام است! بر روی نام پوشه پروژه خود راست کلیک کرده و ابتدا Run As و پس از آن Android Application را انتخاب کنید تا پروژه اجرا گردد. اگر تمام مراحل را درست و با توجه به آنچه توضیح داده شد انجام داده باشید، شبیه ساز اندروید باز شده و پروژه در آن شاجرا می گردد. دقت کنید که برای اولین بار ممکن است کمی طول بکشد تا شبیه ساز بالا بیاید. تصویر زیر حاصل نهایی کار را نشان می دهد:

آموزش برنامه نویسی اندروید [جلسه سوم – جابجایی بین اکتیویتی‌ها]

امیدواریم از این درس نیز بهره کافی را برده باشید. یادتان نرود که سعی کنید پس از انجام تمرین فوق، تغییراتی را خود در پروژه ایجاد کنید. مثلا یک ورودی دیگر در صفحه قرار دهید یا اطلاعاتی که بین اکتیویتی ها ارسال می کنید را تغییر دهید. اگر این درس را با دقت خوانده باشید قادر به انجام اینکار خواهید بود.

هر سوالی که در رابطه با برنامه نویسی اندروید براتون پیش اومد در قسمت دیدگاه ها بیان کنید

سورس مطالب این بخشدانلود کنید
اولین دیدگاه را شما بنویسید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

از آخرین مطالب سایت باخبر شوید. کانال تلگرام آی بلد
ما را در اینستاگرام دنبال کنید Follow
طراحی وب
%u0637%u0631%u0627%u062D%u06CC %u0633%u0627%u06CC%u062A
طراحی سایتقالب وردپرس