آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

ساخت چند دکمه (Button) برای رفتن به Activity های مختلف، در برنامه نویسی اندروید

در مبحثی دیگر، ساخت یک دکمه (Button) برای رفتن به یک Activity دیگر را شرح دادیم که در آن، وقتی کاربر بر وی دکمه اشاره می کرد، به Activity مورد نظر، منتقل می شد. اکنون می خواهیم ببینیم که چگونه می توان چند دکمه (Button) برای رفتن به چند Activity مختلف را تعریف کرد.

من حالت 5 دکمه را برایتان مثال می زنم. قبل از هر چیز تذکر بدهم، که کدهای لازم برای ساخت 5 دکمه، در واقع از 5 بار تکرار همان کدهایی خواهد بود که برای ساخت یک دکمه به کار می بردیم و تنها باید به این نکته توجه داشت که هر دکمه جدید، باید دارای یک نام جدید باشد و نباید دو دکمه با یک نام داشته باشیم. مهمتر از هر چیز، اینکه باید id دکمه ها متفاوت باشد. همچنین برای هر دکمه، روش setOnClickListener را به طور جداگانه به کار می بریم.

ابتدا درون فایل xml متناظر با آن Activity که در آن می خواهیم 5 دکمه نمایش داده شوند، کدهای زیر را می نویسیم :


<Button
    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 های مربوط به دکمه ها را متفاوت تعیین کرده ایم که عبارتند از :


button1
button2
button3
button4
button5

کدهای زیر را درون فایل java مربوط به Activity می نویسیم تا عملکرد دکمه ها مشخص شود :


Button b1 = (Button) findViewById(R.id.button1);
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 دیگر را به صورت زیر در نظر گرفته ایم :


Activity2
Activity3
Activity4
Activity5
Activity6
نویسنده علیرضا گلمکانی
شماره کلید 820
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 13 13 0
tina
۱۳۹۶/۰۳/۰۳
۱۱:۴۰

سلام من تازه شرو کردم کدهای قسمت جاوا رو اضافه میکنم ارور میده که کلاسش فراخوانی نشده و فلان چیکار کنم ؟

admin
۱۳۹۶/۰۳/۰۷
۱۸:۱۰

سلام.
وقتی که در یک Activity از پروژه اندروید، کدهایی را اضافه می کنیم، ممکن است کدها به import شدن تعدادی package (مربوط به class ها و method ها و ...) نیاز داشته باشند.
در این موارد، اگر از محیط برنامه نویسی Eclipse استفاده می کنید، کافی است که با موس در بخشی از کدهای Activity کلیک کنید و سپس کلیدهای Ctrl و Shift و O (حرف او انگلیسی، نه صفر) را به صورت همزمان از کیبورد بزنید. با زدن همزمان این سه دکمه، package های لازم به صورت خودکار import می شوند (کد import شدن آنها در ابتدای کدهای Activity ذکر می گردد).

Flower

اسماعیل
۱۳۹۶/۰۶/۰۴
۰۲:۱۸

سلام و خسته نباشید یه سوال تو صفحه فرگمنتم چند دکمه دارم اگه بخوام با کلیک بر روی هر دکمه به فرگمنت دیگه ای بره باید چیکار کنم ممنون میشم کمک کنید

علی
۱۳۹۶/۱۱/۱۷
۱۱:۱۱

سلام

کد پی‌اچ‌پی:
setContentView(R.layout.activity_main); 

به جای عبارت activity_main نام فرم جدید را بنویسید.

Omid
۱۳۹۶/۰۸/۲۹
۱۶:۰۳

Iran

melika
۱۳۹۷/۰۸/۱۰
۱۲:۰۳

سلام
 من یه  دکمه تعریف  کردم  که بره به یه  activity   دیگه  توی  اون  activity  هم دقیقا همین کارو کردم ولی موقع  اجرا فقط  به اکتیویتی  اول  میرم و  توی  اکتیویتی دوم برنامه متوقف میشه  در  صورتی که  هیچ خطایی نداره  و توی  android manifest  هم تعریف  شده  مشکل از  کجاست ؟

حمید
۱۳۹۷/۱۱/۰۷
۰۶:۵۵

سلام دوست عزیز
چون کامپایلر فقط داره MainActivity رو اجرا می کنه و فقط دکمه رفتن به صفحه دومت کار میکنه و اینکه متوقف میشه احتمالا توی جاوای صفحه دومت اسم کلاستو با حروف کوچیک نوشتی چکش کن 

amin
۱۳۹۷/۱۱/۰۷
۱۸:۵۸

سلام،خدا خیرت بده من هم مشکلم مثل دوستمون بود که با کار شما رفع شد.ممنون

ناصر
۱۳۹۸/۰۳/۰۸
۰۰:۰۴

آیا دستوری هست که بتونیم با فشار دادن یک دکمه ،استرین مربوطه رو در یک تکس ویو نشان بدهد و با عوض شدن دکمه دوم نیاز به نوشتن فرمول جدید و تکس ویو  جدید یا اکتیویتی جدید نباشه با 

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 تا دکمه و استرین مربوطش بنویسم لطفا راهنمایی کنید من تازه شروع به برنامه نویسی کردم

Abedajv
۱۳۹۸/۰۳/۱۷
۰۰:۰۸

با سلام ...من میخوام با کلیک روی یک دکمه در main activiti 
برنامه به اکتیویتی دیگه بره و یک متن رو برام نشون بده...لطفا کمک کنید

علیرضا
۱۳۹۸/۰۴/۱۹
۰۱:۱۳

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

behrooz
۱۳۹۹/۰۲/۰۷
۱۸:۰۴

سلام 
من فقط  یه لایه دارم که توش ویوپیجر گذاشتم توی اخرین صفحه از ویو پیجر یه دکمه هست که میخوام با زدن اون برم به همون  اکتیویتی  ایا میشه ؟

عظیم صالحی
۱۴۰۱/۰۸/۲۹
۲۱:۰۲

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

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)