کلیدستان

نسخه‌ی کامل: مشکل در آدرس دادن button در برنامه اندروید
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان مطابق این کلید من میخوام در فایل MainActivity.java آدرس یک button را بدهم و import هم کرده ام ولی این ارور رو میده.
سوالاتی هم دارم:
1- import کردن یعنی اینکه به برنامه بگیم که مثلا Button ای وجود داره؟
2- وقتی میخواهیم آدرسی بدهیم آیا Button b همون اسم باتنی هست که برنامه اون رو میشناسه؟
سلام دوست عزیز.
ما واژه import را  برای دو مورد زیر به کار می بریم (فقط برای گیج نشدن سایر دوستان می گویم و شما مورد دوم را بخوانید) :
الف- برای وارد کردن یک پروژه اندروید به درون برنامه eclipse به کار می بریم. یعنی مثلا بنده قبلا یک پروژه اندروید ساخته ام و فایل های آن را به شما می دهم. اکنون شما برای اینکه آن را به درون برنامه eclipse وارد کنید تا نام و فایل های آن در قسمت Package Explorer برنامه eclipse نمایش داده شود، باید از گزینه import استفاده کنید.
نحوه  import کردن یک پروژه اندروید به درون برنامه eclipse را در کلید زیر شرح داده ایم :

http://kelidestan.com/keys/keys.php?key=321

ب- وارد کردن package های (کلاس های) مربوط به عنصرهایی که به کار برده ایم و قرار است در کدهای java در Activity ، یک سری عملیات را بر روی آنها اجرا کنیم. سوال شما نیز مربوط به همین مورد می شود، یعنی مثلا چون شما از عنصر Button استفاده می کنید بنابراین باید کلاس های (class) کار با آن به درون Activity ، وارد (import) شوند تا هنگام اجرای آن Activity ، برنامه اندروید بر اساس آن کلاس ها (class) با Button  کار کند. معمولا  با زدن همزمان کلید های Ctrl و Shift و O (حرف O ، نه صفر) از کیبورد، تمامی package های (کلاس های) مورد نیاز برای آن عنصر به درون فایل های java ، وارد (import) می شوند. 

خوب حالا برویم به سراغ خطایی که نمایش داده شده است. هرگاه با عبارت cannot be resolved or in not a field مواجه شدید، موارد زیر را در نظر بگیرید :
1- ببینید که آیا در میان کدهای عنصر مورد نظر در فایل xml ، یک id برای آن تعریف کرده اید یا نه (عنصر باید دارای یک id باشد تا در کدهای java در Activity ، بتوانیم آن را شناسایی کنیم). مثلا در کد زیر، یک id برابر button1 برای Button تعریف شده، در نظر گرفته ایم :

کد:
<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0.72"
    android:text="Button" />

2- ببینید آیا در کدهای java در Activity ، عبارت درست را برای id عنصر نوشته اید یا خیر (هنگام شناسایی عنصر) :

کد:
Button b = (Button) findViewById(R.id.button1);

3- با زدن همزمان کلید های Ctrl و Shift و O (حرف O ، نه صفر) از کیبورد، تمامی package های (کلاس های) مورد نیاز برای آن عنصر را به درون فایل های java ، وارد (import) کنید.
4- بررسی کنید که فایل ها را ذخیره کرده باشید.
5- اگر تمامی مراحل قبل را انجام داده اید ولی باز هم مشکل وجود دارد و برنامه eclipse ، پیام خطای مورد نظر را به شما نمایش می دهد، برنامه eclipse را ببندید و دوباره آن را باز کنید (گاهی اوقات دیده شده که با این کار، پیام خطا دیگر نمایش داده نخواهد شد، یعنی یک مشکل در خود برنامه eclipse بوده است).

خیلی ممون تونستم برنامه رو به راحتی اجرا کنم فقط میشه توضیحی درباره این کد ها که در فایل MainActivity.java هست بدید؟


کد:
b.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Activity2.class));
}
});
}

 
در این کد، از روش setOnClickListener برای تعیین اجرای یک سری کد، بعد از اشاره کاربر بر روی Button مورد نظر، استفاده کردیم.
یعنی ابتدا یک  Button با نام b در این Activity از برنامه اندروید تعریف کرده ایم و سپس روش  setOnClickListener را برای آن به کار برده ایم که در آن، تعیین کرده ایم که پس از اشاره کاربر بر روی دکمه (Button)، کد زیر اجرا شود :

کد:
startActivity(new Intent(MainActivity.this, Activity2.class));

کد فوق، با استفاده از روش Intent ، کاربر را به Activity با نام  Activity2 منتقل می کند.