ساخت چند دکمه (Button) برای رفتن به Activity های مختلف، در برنامه نویسی اندروید
در مبحثی دیگر، ساخت یک دکمه (Button) برای رفتن به یک Activity دیگر را شرح دادیم که در آن، وقتی کاربر بر وی دکمه اشاره می کرد، به Activity مورد نظر، منتقل می شد. اکنون می خواهیم ببینیم که چگونه می توان چند دکمه (Button) برای رفتن به چند Activity مختلف را تعریف کرد.
من حالت 5 دکمه را برایتان مثال می زنم. قبل از هر چیز تذکر بدهم، که کدهای لازم برای ساخت 5 دکمه، در واقع از 5 بار تکرار همان کدهایی خواهد بود که برای ساخت یک دکمه به کار می بردیم و تنها باید به این نکته توجه داشت که هر دکمه جدید، باید دارای یک نام جدید باشد و نباید دو دکمه با یک نام داشته باشیم. مهمتر از هر چیز، اینکه باید id دکمه ها متفاوت باشد. همچنین برای هر دکمه، روش setOnClickListener را به طور جداگانه به کار می بریم.
ابتدا درون فایل xml متناظر با آن Activity که در آن می خواهیم 5 دکمه نمایش داده شوند، کدهای زیر را می نویسیم :
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button5" />
دقت داشته باشید که دکمه های فوق را من برای یک فایل xml با لایه LinearLayout نوشته ام، برای موارد دیگر، می توانید ویژگی های دکمه را تغییر بدهید تا به درستی در لایه نمایش داده شوند (مطابق میلتان آنها را تغییر بدهید).
همان طور که در کدها می بینید، id های مربوط به دکمه ها را متفاوت تعیین کرده ایم که عبارتند از :
button2
button3
button4
button5
کدهای زیر را درون فایل java مربوط به Activity می نویسیم تا عملکرد دکمه ها مشخص شود :
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity2.class));
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity3.class));
}
});
Button b3 = (Button) findViewById(R.id.button3);
b3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity4.class));
}
});
Button b4 = (Button) findViewById(R.id.button4);
b4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity5.class));
}
});
Button b5 = (Button) findViewById(R.id.button5);
b5.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Activity1.this, Activity6.class));
}
});
دقت شود که در کدهای بالا، نام Activity فعلی که در آن، دکمه ها را تعریف کرده ایم را برابر Activity1 در نظر گرفته ایم و همچنین نام پنج Activity دیگر را به صورت زیر در نظر گرفته ایم :
Activity3
Activity4
Activity5
Activity6
سلام من تازه شرو کردم کدهای قسمت جاوا رو اضافه میکنم ارور میده که کلاسش فراخوانی نشده و فلان چیکار کنم ؟
سلام.
وقتی که در یک Activity از پروژه اندروید، کدهایی را اضافه می کنیم، ممکن است کدها به import شدن تعدادی package (مربوط به class ها و method ها و ...) نیاز داشته باشند.
در این موارد، اگر از محیط برنامه نویسی Eclipse استفاده می کنید، کافی است که با موس در بخشی از کدهای Activity کلیک کنید و سپس کلیدهای Ctrl و Shift و O (حرف او انگلیسی، نه صفر) را به صورت همزمان از کیبورد بزنید. با زدن همزمان این سه دکمه، package های لازم به صورت خودکار import می شوند (کد import شدن آنها در ابتدای کدهای Activity ذکر می گردد).
سلام و خسته نباشید یه سوال تو صفحه فرگمنتم چند دکمه دارم اگه بخوام با کلیک بر روی هر دکمه به فرگمنت دیگه ای بره باید چیکار کنم ممنون میشم کمک کنید
سلام
به جای عبارت activity_main نام فرم جدید را بنویسید.
سلام
من یه دکمه تعریف کردم که بره به یه activity دیگه توی اون activity هم دقیقا همین کارو کردم ولی موقع اجرا فقط به اکتیویتی اول میرم و توی اکتیویتی دوم برنامه متوقف میشه در صورتی که هیچ خطایی نداره و توی android manifest هم تعریف شده مشکل از کجاست ؟
سلام دوست عزیز
چون کامپایلر فقط داره MainActivity رو اجرا می کنه و فقط دکمه رفتن به صفحه دومت کار میکنه و اینکه متوقف میشه احتمالا توی جاوای صفحه دومت اسم کلاستو با حروف کوچیک نوشتی چکش کن
سلام،خدا خیرت بده من هم مشکلم مثل دوستمون بود که با کار شما رفع شد.ممنون
آیا دستوری هست که بتونیم با فشار دادن یک دکمه ،استرین مربوطه رو در یک تکس ویو نشان بدهد و با عوض شدن دکمه دوم نیاز به نوشتن فرمول جدید و تکس ویو جدید یا اکتیویتی جدید نباشه با
Tips6 = (Button)findViewById(R.id.btn1);
Tips6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Tips_1.this,Tips_6.class);
startActivity(i);
این ذستور رو باید برای 20 تا دکمه و استرین مربوطش بنویسم لطفا راهنمایی کنید من تازه شروع به برنامه نویسی کردم
با سلام ...من میخوام با کلیک روی یک دکمه در main activiti
برنامه به اکتیویتی دیگه بره و یک متن رو برام نشون بده...لطفا کمک کنید
سلام ببخشید تو سایتتون فیلم بزارید من اینجوری که شما نوشتین من نمیفهمم لطفا فیلم اموزشی بزارید بخدا کپی نمیکنم
سلام
من فقط یه لایه دارم که توش ویوپیجر گذاشتم توی اخرین صفحه از ویو پیجر یه دکمه هست که میخوام با زدن اون برم به همون اکتیویتی ایا میشه ؟
درود بر شما . من با aide با گوشی هر چه تلاش میکنم از دکمه ای که داخل صفحه دوم تعریف کردم وارد صفحه سوم بشم عمل نمیکنه . صفحه دوم جاوا با دوم اکسمل اکستند شده همینطور جاوای ۳ با اکسمل سوم . فراخوانی ها هم در مین اکتیویتی انجام شده در مانیفست هم تعریف کردم . دیگه نمیدونم ایراد کار کجاست . آیدی ها هم متفاوته لطفا اگر امکان داره یا اینجا یا با ایمیل کمکم کنید با تشکر