آموزش Alert Dialog در برنامه نویسی اندروید

4 سال پیش

آموزش Alert Dialog در برنامه نویسی اندروید

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد Alert Dialog در برنامه نویسی اندروید صحبت خواهیم کرد.

 

Alert Dialog در اندروید پنجره گفتگو  کوچکی است که کاربر را به تصمیم گیری یا وارد کردن اطلاعات اضافی ترغیب می کند.

بعضی اوقات در برنامه خود، اگر می خواهید از کاربر در مورد تصمیم گیری بین بله یا خیر در قبال هر اقدام خاصی که توسط او انجام شده است، سوال کنید، با باقی ماندن در همان فعالیت و بدون تغییر صفحه، می توانید از Alert Dialog استفاده کنید.

برای ایجاد یک پیام هشدار، باید یک شی از AlertDialogBuilder ایجاد کنید که یک کلاس توکار از AlertDialog باشد. نحو آن در زیر آورده شده است.

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

اکنون باید دکمه مثبت (yes) یا منفی (no) را با استفاده از شی کلاس AlertDialogBuilder تنظیم کنید. نحو آن است

alertDialogBuilder.setPositiveButton(CharSequence text, 
   DialogInterface.OnClickListener listener)
alertDialogBuilder.setNegativeButton(CharSequence text, 
   DialogInterface.OnClickListener listener)

به غیر از این، می توانید از توابع دیگر ارائه شده توسط کلاس سازنده برای شخصی سازی پیام هشدار استفاده کنید. که در زیر ذکر شده است

(setIcon(Drawable icon

این متد آیکون کادر گفتگوی هشدار را تنظیم می کند.

(setCancelable(boolean cancel able

این متد خصوصیاتی را تنظیم می کند که می توان پیام هشدار را لغو کند یا خیر.

(setMessage(CharSequence message

این متد تنظیم می کند که پیام مورد نظر در پیام هشدار نمایش داده شود

(setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener

این مند لیست مواردی را که باید به عنوان محتوا در پیام هشدار نمایش داده شوند را تنظیم می کند. آیتم انتخاب شده توسط شنونده (listener) اطلاع داده می شود.

(setOnCancelListener(DialogInterface.OnCancelListener onCancelListener

این متد کال بک را تنظیم می کند که در صورت لغو گفتگو فراخوانی می شود.

(setTitle(CharSequence title

این متد عنوان را برای نشان دادن در Alert Dialog تنظیم می کند.

 

پس از ایجاد و تنظیم سازنده گفتگو، با فراخوانی متد ()create کلاس builder یک Alert Dialog ایجاد خواهید کرد. نحو آن به صورت زیر است.

AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();

با این کار Alert Dialog در اندروید ایجاد شده و روی صفحه نمایش داده می شود.

 

Dialog fragment:

قبل از یک مثال، باید Dialog fragment را بدانیم. Dialog fragment قطعه ای است که می تواند در dialog Box یک فرگمنت گفتگو نشان دهد.

public class DialogFragment extends DialogFragment {
   @Override
   public Dialog onCreateDialog(Bundle savedInstanceState) {
      // Use the Builder class for convenient dialog construction
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      builder.setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int id) {
            toast.makeText(this,"enter a text here",Toast.LENTH_SHORT).show();
         }
      })
      .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int id) {
            finish();
         });
         // Create the AlertDialog object and return it
         return builder.create();
      }
   }
}

 

List dialog

این مورد برای نشان دادن لیست موارد در یک جعبه گفتگو استفاده شده است. برای فرض، کاربر باید لیستی از موارد را انتخاب کند یا در غیر این صورت باید بر روی یک آیتم از چندین لیست موارد کلیک کند. در این شرایط می توانیم از List dialog استفاده کنیم.

public Dialog onCreateDialog(Bundle savedInstanceState) {
   AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
   builder.setTitle(Pick a Color)
   
   .setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
         // The 'which' argument contains the index position
         // of the selected item
      }
   });
   return builder.create();
}

Single-choice list dialog

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

public Dialog onCreateDialog(Bundle savedInstanceState) {
   mSelectedItems = new ArrayList();
   AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
   
   builder.setTitle("This is list choice dialog box");
   .setMultiChoiceItems(R.array.toppings, null,
      new DialogInterface.OnMultiChoiceClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which, boolean isChecked) {
         
         if (isChecked) {
            // If the user checked the item, add it to the selected items
            mSelectedItems.add(which);
         }
         
         else if (mSelectedItems.contains(which)) {
            // Else, if the item is already in the array, remove it 
            mSelectedItems.remove(Integer.valueOf(which));
         }
      }
   })
   
   // Set the action buttons
   .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int id) {
         // User clicked OK, so save the mSelectedItems results somewhere
         // or return them to the component that opened the dialog
         ...
      }
   })
   
   .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int id) {
         ...
      }
   });
   return builder.create();
}

 

مثال

مثال زیر استفاده از AlertDialog در اندروید را نشان می دهد.

برای آزمایش این مثال، باید این مورد را روی شبیه ساز یا دستگاه واقعی اجرا کنید.

 شرح مراحل

۱ شما برای ایجاد یک برنامه Android از Android studio استفاده خواهید کرد و نام آن را به عنوان My Application تحت یک بسته com.example.sairamkrishna.myapplication قرار دهید.
۲ برای افزودن کد گفتگوی هشدار برای راه اندازی گفتگو ، پرونده src / MainActivity.java را تغییر دهید.
۳ طرح XML را تغییر دهید فایل res / layout / activity_main.xml در صورت لزوم، هر جز GUI اضافه کنید.
۴ نیازی به تغییر ثابتهای رشته پیش فرض نیست. Android studio از رشته های پیش فرض در values / string.xml محافظت می کند
۵ برنامه را اجرا کرده و دستگاه اندرویدی در حال اجرا را انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را تأیید کنید.

در اینجا کد اصلاح شده src / MainActivity.java وجود دارد

package com.example.sairamkrishna.myapplication;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }

   public void open(View view){
      AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
      alertDialogBuilder.setMessage("Are you sure,
         You wanted to make decision");
      alertDialogBuilder.setPositiveButton("yes", 
         new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface arg0, int arg1) {
            Toast.makeText(MainActivity.this,"You clicked yes 
               button",Toast.LENGTH_LONG).show();
         }
      });

      alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
         Override
         public void onClick(DialogInterface dialog, int which) {
            finish();
         }
      });

      AlertDialog alertDialog = alertDialogBuilder.create();
      alertDialog.show();
   }
}

در اینجا کد اصلاح شده res / layout / activity_main.xml وجود دارد

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
   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:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Alert Dialog"
      android:id="@+id/textView"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorialspoint"
      android:id="@+id/textView2"
      android:textColor="#ff3eff0f"
      android:textSize="35dp"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView2"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2"
      android:layout_alignLeft="@+id/textView"
      android:layout_alignStart="@+id/textView" />
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Alert dialog"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2"
      android:layout_marginTop="42dp"
      android:onClick="open"
      android:layout_alignLeft="@+id/imageView"
      android:layout_alignStart="@+id/imageView" />
      
</RelativeLayout>

در اینجا ofStrings.xml است

در اینجا ofStrings.xml است

در اینجا کد پیش فرض AndroidManifest.xml وجود دارد

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

بیایید برنامه را اجرا کنیم. من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی Android StudioRun Icon کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.

گزینه خود را انتخاب کنید و سپس بر روی آن کلیک کنید. فرض کنید، اگر بر روی دکمه Yes کلیک کرده اید، نتیجه به صورت زیر خواهد بود

 

اگر بر روی دکمه no کلیک کنید، ()finish فراخوانی می شود و برنامه شما بسته می شود.

منبع.

لیست جلسات قبل آموزش برنامه نویسی اندروید

  1. نگاهی کلی به برنامه نویسی اندروید
  2. تنظیمات محیط  در برنامه نویسی اندروید
  3. معماری برنامه نویسی اندروید
  4. اجزای برنامه در برنامه نویسی اندروید
  5. Hello World در برنامه نویسی اندروید
  6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
  7. فعالیت در برنامه نویسی اندروید
  8. سرویس در برنامه نویسی اندروید
  9. گیرنده های پخش در برنامه نویسی اندروید
  10. ارائه دهنده محتوا در برنامه نویسی اندروید
  11. قطعات در برنامه نویسی اندروید
  12. Intent و فیلتر در برنامه نویسی اندروید
  13. طرح بندی رابط کاربری در برنامه نویسی اندروید
  14. کنترل های رابط کاربری در برنامه نویسی اندروید
  15. مدیریت رویدادها در برنامه نویسی اندروید
  16. استایل و تم ها در برنامه نویسی اندروید
  17. اجزای سفارشی در برنامه نویسی اندروید
  18. کشیدن و رها کردن در برنامه نویسی اندروید
  19. نوتیفیکیشن ها در برنامه نویسی اندروید
  20. سرویس های مبتنی بر مکان در برنامه نویسی اندروید
  21. ارسال ایمیل در برنامه نویسی اندروید
  22. ارسال پیامک در برنامه نویسی اندروید
  23. تماس های تلفنی در برنامه نویسی اندروید
  24. انتشار برنامه اندروید
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه