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

نمایش یک پیام در یک پنجره جدید، به همراه دو گزینه قابل انتخاب برای کاربر، با استفاده از AlertDialog ، در برنامه نویسی اندروید

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

ابتدا در برنامه اندروید، یک دکمه (Button) با عنوان ((نمایش پیام)) نمایش داده می شود :

نمایش یک پیام در یک پنجره جدید، به همراه دو گزینه قابل انتخاب برای کاربر، با استفاده از AlertDialog ، در برنامه نویسی اندروید

اگر کاربر بر روی دکمه (Button) اشاره کند، پنجره ای به شکل زیر باز می شود :

نمایش یک پیام در یک پنجره جدید، به همراه دو گزینه قابل انتخاب برای کاربر، با استفاده از AlertDialog ، در برنامه نویسی اندروید

با اشاره بر روی گزینه ((بله))، پنجره بسته می شود و پیامی کوتاه با عنوان YES نمایش داده می شود و همچنین چنانچه کاربر بر روی گزینه ((خیر)) اشاره کند، پنجره بسته می شود و پیامی کوتاه با عنوان NO نمایش داده می شود :

نمایش یک پیام در یک پنجره جدید، به همراه دو گزینه قابل انتخاب برای کاربر، با استفاده از AlertDialog ، در برنامه نویسی اندروید

شما در صورت دلخواه، می توانید دستورهای مورد نظرتان برای هر یک از این دو گزینه را تعیین کنید.

در انتهای این مبحث، فایل های پروژه اندروید برای دانلود قرار داده شده اند و در ادامه، بخش های مهم پروژه اندروید را شرح می دهیم.

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام AlertDialog می سازیم (نام package را برابر com.kelidestan.alertdialog انتخاب می کنیم. نام Activity اصلی را برابر MainActivity انتخاب می کنیم و فایل xml متناظر آن را هم برابر activity_main قرار می دهیم).

رشته های (string) مورد نظرمان را در فایل strings.xml تعریف می کنیم :

نمایش یک پیام در یک پنجره جدید، به همراه دو گزینه قابل انتخاب برای کاربر، با استفاده از AlertDialog ، در برنامه نویسی اندروید

کدهای فایل strings.xml را به صورت زیر می نویسیم :


<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">AlertDialog</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="title">عنوان</string>
    <string name="message">پیامی که می خواهید نمایش داده شود</string>
    <string name="yes">بله</string>
    <string name="no">خیر</string>
    <string name="button">نمایش پیام</string>

</resources>

فایل activity_main.xml ، فایل xml متناظر برای Activity برنامه است (برنامه اندروید تنها یک Activity دارد) :

نمایش یک پیام در یک پنجره جدید، به همراه دو گزینه قابل انتخاب برای کاربر، با استفاده از AlertDialog ، در برنامه نویسی اندروید

کدهای فایل activity_main.xml را به صورت زیر می نویسیم :


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/button" />

</LinearLayout>

همان طور که مشاهده می کنید، تنها یک دکمه (Button) را تعریف کرده ایم. ظاهر گرافیکی activity_main.xml ، به صورت زیر می باشد :

نمایش یک پیام در یک پنجره جدید، به همراه دو گزینه قابل انتخاب برای کاربر، با استفاده از AlertDialog ، در برنامه نویسی اندروید

اکنون به سراغ فایل MainActivity.java می رویم (فایل مربوط به تنها Activity برنامه اندروید) :

نمایش یک پیام در یک پنجره جدید، به همراه دو گزینه قابل انتخاب برای کاربر، با استفاده از AlertDialog ، در برنامه نویسی اندروید

کدهای فایل MainActivity.java را به صورت زیر می نویسیم :


package com.kelidestan.alertdialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                Button b = (Button) findViewById(R.id.button1);
                b.setOnClickListener(new OnClickListener() {
                                         
                     @Override
                     public void onClick(View v) {
                         ShowAlertDialog();
                     }
                });
        }

        public void ShowAlertDialog() {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
        alertDialog.setTitle(R.string.title);
        alertDialog.setMessage(R.string.message);
        alertDialog.setIcon(R.drawable.ic_launcher);
        // Setting Positive "Yes" Button
        alertDialog.setPositiveButton(R.string.yes,
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        Toast.makeText(getApplicationContext(), "YES", Toast.LENGTH_SHORT).show();
                    }
                });
        // Setting Negative "NO" Button
        alertDialog.setNegativeButton(R.string.no,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // Write your code here to invoke NO event
                        dialog.cancel();
                        Toast.makeText(getApplicationContext(), "NO", Toast.LENGTH_SHORT).show();
                    }
                });
        // Showing Alert Message
        alertDialog.show();
    }

}

در ادامه، بخش های مهم کدها را شرح می دهیم.

تابعی با نام ShowAlertDialog ساخته ایم که برای نمایش AlertDialog به کار می رود و کدهای مربوط به دکمه (Button) را به گونه ای نوشته ایم که با اشاره کاربر بر روی دکمه، کدهای تابع ShowAlertDialog اجرا شود :


Button b = (Button) findViewById(R.id.button1);
                b.setOnClickListener(new OnClickListener() {
                                         
                     @Override
                     public void onClick(View v) {
                         ShowAlertDialog();
                     }
                });

اکنون، در ادامه، کدهای تابع ShowAlertDialog را شرح می دهیم.

با کد زیر، یک AlertDialog با نام alertDialog ساخته ایم :


AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);

سپس با روش setTitle ، عنوانی برای AlertDialog تعیین کرده ایم :


alertDialog.setTitle(R.string.title);

با کد زیر، پیامی که در AlertDialog نمایش داده می شود را تعیین کرده ایم :


alertDialog.setMessage(R.string.message);

با کد زیر، یک آیکون (icon) برای AlertDialog نعیین کرده ایم (عکس خود برنامه اندروید را به عنوان آیکون در نظر گرفته ایم) :


alertDialog.setIcon(R.drawable.ic_launcher);

با کد زیر، یک دکمه به AlertDialog افزوده ایم (یک دکمه از نوع Positive) و کدهایی را هم برای اجرا شدن در هنگام اشاره به آن، تعیین کرده ایم :


// Setting Positive "Yes" Button
        alertDialog.setPositiveButton(R.string.yes,
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        Toast.makeText(getApplicationContext(), "YES", Toast.LENGTH_SHORT).show();
                    }
                });

دقت شود که خط زیر از کدها، باعث بسته شدن پنجره مروبط به AlertDialog می شود :


dialog.cancel();

همچنین از روش Toast برای نمایش یک پیام با مدت زمان کوتاه، استفاده کرده ایم.

با کد زیر، یک دکمه به AlertDialog افزوده ایم (یک دکمه از نوع Negative) و کدهایی را هم برای اجرا شدن در هنگام اشاره به آن، تعیین کرده ایم :


// Setting Negative "NO" Button
        alertDialog.setNegativeButton(R.string.no,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // Write your code here to invoke NO event
                        dialog.cancel();
                        Toast.makeText(getApplicationContext(), "NO", Toast.LENGTH_SHORT).show();
                    }
                });

در آخر، با کد زیر، AlertDialog ای که طراحی کرده ایم را به کاربر نمایش می دهیم :


// Showing Alert Message
alertDialog.show();

فایل های پروژه اندروید را می توانید از لینک های زیر دانلود کنید :