زمان جاری : دوشنبه 17 اردیبهشت 1403 - 4:54 قبل از ظهر
نام کاربری : پسورد : یا عضویت | رمز عبور را فراموش کردم

تعداد بازدید 282
نویسنده پیام
admin
آنلاین

مدیرکل
ارسال‌ها : 3
عضویت: 23 /2 /1393
ساخت دو Activity و نمایش صفحه دوم (قسمت سوم)
برای اولین برنامه می خواهیم در صفحه اول عبارت سلام را نوشته و با کلیک بر روی دکمه ، صفحه عوض شود (تغییر Activity ) و یک تصویر نمایش داده شود.
در بین آموزش قبلی و این آموزش توانایی افزودن چندین پست آموزشی دیگر هم بود ولی به نظرم خسته کننده خواهد شد به همین دلیل مطالب اصلی به طور خلاصه توضیح داده می شود و مطالب دیگر را در حین آموزش ها فرا خواهید گرفت …مانند آموزش قبل یک پروژه بسازید .از مسیر res/Layout فایل activity_main_page.xml را باز کنید.در پایین صفحه دو عبارت Graphical layout و activity_main_page.xml را مشاهده می کنید .اولی طراحی به صورت گرافیکی و دومی طراحی به صورت متنی (با دستورات xml ) می باشد.

در محیط گرافیکی ، روی Hello World کلیک کرده و آن را حذف کنید (با زدن کمه Del از روی کیبرد)سمت چپ صفحه قسمت Palette را مشاهده می کنید که می توانید اشیاء را از آنجا کشیده و داخل صفحه رها کنید تا یر روی فعالیت موجود قرار گیرند.برای این Activity یک Text View و یک دکمه (Button) از قسمت Form Widgets نیاز داریم.

با دوبار کلیک کردن روی هر کدام از آبجکت ها (اشیا) درحالت XML View آن شی نمایش داده می شود .هر کدام از اشیا برای شناسایی باید یک id داشته باشد.برای اینکه در هنگام کد نویسی دچار اشتباه نشویم ، باید برای هر شئ یک ID منحصر به فرد و قابل تشخیص انتخاب کنیم.آی دی هر شی با این دستور مشخص می شود android:id=”@ id/آیدی TextView را main_tv1 و آی دی دکمه را main_but_jump می گذارم تا قابل تشخیص باشند .همچنین با تغییر


کد:

کد:

android:text="TextView"



می توان متن داخل شی را عوض کرد که ما متن را به “سلام” تغییر می دهیم.


کد:

کد:

<TextView
android:id="@+id/main_tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:text="سلام" />

<Button
android:id="@+id/main_but_jump"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="32dp"
android:text="Button" />



ساخت محیط گرافیکی صفحه اول به پایان رسید .حال برای ساخت صفحه دوم نیاز به ساخت یک Activity است .بر روی دکمه New (پایین تر از منوی فایل )کلیک کنید.در پنجره جدید Android Activity را انتخاب کرده ، Next->Next را بفشارید ، یک نام (مثل Page2 ) وارد کرده و برروی finish کلیک کنید.Hello World را از روی صحفه حذف نمایید و از قسمت پالت ، زیر مجموعه Image & Media شئ ImageView را روی صفحه قرار دهید.با قرارگیری این شئ ، یک پنجره برای قرار دادن تصویر داخل شی نشان داده می شود که درحال حاضر تنها تصویر استفاده شده در پروژه تصویر آیکون می باشد که آن را روی صفحه قرار می دهیم.با کلیک بر روی OK پنجره بسته شده و تصویر روی فعالیت نمایش داده می شود .

در حال حاضر طراحی دو صفحه (دو Activity ) به پایان رسید.در ادامه نیاز داریم تا از Activity اول به دوم برویم.فایل MainPage.java را از مسیر src/com.PersianCoders.FirstProject باز کنید (دوبار کلیک)کدهایی که مشاهده می کنید به صورت اتوماتیک ساخته شده اند که برای انجام عملیات مورد نظرتان باید این کدها را شخصی سازی کنید.قسمت onCreate در زمان اجرای فعالیت اجرا می شوند.


کد:

کد:

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



کلمه Override نشان دهنده دوباره نویسی تابع توسط کاربر است super.onCreate دستورات اصلی تابع onCreate را اجرا می کند .برای اجرای درست فعالیت این دستور باید قرار داشته باشد . همانطور که در آموزش قبل هم گفته شد setContentView نمای صفحه را مشخص می کند که ما فایل activity_main_page را انتخاب کردیم.برای شناساندن دکمه از روی فایل xml باید بعد از setContentView با دستور زیر ابتدا یک شئ دکمه بسازیم و به دکمه روی xml متصل کنیم:


کد:

کد:

Button MyBut = findViewById(R.id.main_but_jump);



بعد از نوشتن این خط ، برنامه از کلمه کلیدی Button خطا میگیرد . با فشردن کلید های Ctrl و ۱ از روی کیبرد ، راه حل های رفع خطا نمایش داده می شود که ما باید Button را با کلیک بر روی Import Button داخل برنامه فراخوانی کنیم.

پس از رفع این مشکل برنامه از ادامه خط ایراد میگیرد که با باید بعد از معرفی هر شئ آن را به نوع متغیری که میخواهیم اطلاعات را داخل آن قرار دهیم تبدیل کنیم .با فشردن ctrl 1 عبارت Add Cast to button نمایش داده می شود که با انتخاب آن کد به صورت زیر تغییر می کند.


کد:

کد:

Button MyBut = (Button) findViewById(R.id.main_but_jump);



حال دکمه با نام MyBut شناسایی شده ولی کاری انجام نمیدهد . برای تنظیم حالت کلیک ، از دستور setOnClickListener استفاده می کنید .


کد:

کد:

MyBut.setOnClickListener(null);



به جای Null در کد بالا عبارت new برای ساخت شئ جدید و سپس onclick را نوشته و برای تکمیل ادامه دستور از دکمه های ctrl space استفاده کنید تا تمام دستوراتی که با این حروف وجود دارد را نمایش دهد .



گزینه OnClickListener را انتخاب کنید .برای رفع خطا با ctrl 1 ، فراخوانی ‘OnClickListener’ را انجام دهید.حال در قسمت onClick می توانید دستورات مورد نظرتان را که میخواهید در هنگام کلیک برروی دکمه اجرا شوند را بنویسید.


کد:

کد:

MyBut.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
//
}
});



برای پرش به فعالیت دیگر باید از intent ها استفاده کنیم .کد زیر عمل انتقال را انجام می دهد.


کد:

کد:

Intent FIRST_INTENT = new Intent(MainPage.this, Page2.class);
startActivity(FIRST_INTENT);



در خط اول به intent مسیر را از Mainpage به page2 مشخص می کند و خط دوم هم intent ساخته شده را اجرا می کند.پس از اجرا AVD برنامه را با استفاده از دکمه اجرا کرده و نتیجه کار را ببینید.
پنجشنبه 08 آبان 1393 - 22:56
نقل قول این ارسال در پاسخ گزارش این ارسال به یک مدیر

پاسخ ها


برای نمایش پاسخ جدید نیازی به رفرش صفحه نیست روی تازه سازی پاسخ ها کلیک کنید !



برای ارسال پاسخ ابتدا باید لوگین یا ثبت نام کنید.


پرش به انجمن :