رفتن به مطلب

انواع Dialog در اندروید استودیو


مجید آرتا

ارسال‌های توصیه شده

با عرض سلام

در این آموزش قصد داریم با انواع دیالوگ ها کار کنیم.

 

  • DatePickerDialog
  • TimePickerDialog
  • Custom Dialog
  • AlertDialog
  • ProgressDialog

 

1.DatePickerDialog : عکس نمونه از این کلاس -->

Date.png

اینجا می تونیم مقدار سال و ماه و روز رو بگیریم :

        OnDateSetListener dsl = new OnDateSetListener() {

            @Override
            public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
                //arg1 = Year || arg2 = Month || arg3 = Day
            }
        };
        DatePickerDialog date = new DatePickerDialog(DialogsActivity.this, dsl, 2015, 07, 02);
        date.show();

خب ابتدا رویداد کلیک و یا لیسنر کلیکشو میسازیم تا با کلیک شدن روی دکمه Set برای ما کاری رو انجام بده.و ما توی قسمت لیسنر کدی رو ننوشتیم و فقط توضیحی در مورد آرگومان های arg1 , arg2 , arg3  دادیم که چی هستن و شما می تونید این مقادیر رو چاپ و یا هر کاری دوست داشتید انجام بدید.و در ادامه دیالوگش رو میسازیم که یک لیسنر میخواد که لیسنر تعریف شده رو بهش نسبت میدیم ( dsl ).

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

2.TimePickerDialog:  برای وارد کردن زمان هستش.عکس ----->

Time.png

کد نوشته شده برای این دیالوگ :

        OnTimeSetListener tsl = new OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker arg0, int arg1, int arg2) {
                //arg1 = Hour || arg2 = Minute
            }
        };
        TimePickerDialog d = new TimePickerDialog(DialogsActivity.this, tsl, 12, 22, true);
        d.show();

 این دیالوگ هم مثل قبلی میاییم براش یک لیسنر تعریف می کنیم ( رویداد یا همون ایونت ) و داخل این رویداد در مورد arg1 , arg2  توضیح داده شده که چه مقداری رو دارن.

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

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

3.Custom Dialog :  توی این مورد ما میاییم یک لایوت میسازیم و لایوت رو به عنوان یک دیالوگ سفارشی نمایش میدیم.عکس ------>

 

Custom.png

 

همینجور که توی عکس می بینید یک پروگرس بار و یک متن Loading  هستش که بنده با استفاده از یک پروگرس بار و یک TextView ( همون Label ) یک دیالوگ سفارشی ساختم و کد نوشته شده به این صورت هستش :

        Dialog dialog = new Dialog(DialogsActivity.this);
        dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.dialog_layout);
        dialog.show();

DialogsActivity اسم اکتیویتی بنده و dialog_layout  هم لایوتی هستش که پروگرس بار و اون متن Loading  رو قرار دادم.

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

4.AlertDialog :  این دیالوگ همانند MsgBox2  توی B4A  هستش.عکس ------>

 

Alert.png

 

خب مشاهده می کنید که 3 گزینه yes , no , cancel  رو شامل میشه و یک تایتل و متن اصلی با یک عکس.کد نوشته شده :

        AlertDialog.Builder builder = new AlertDialog.Builder(DialogsActivity.this)
                .setIcon(android.R.drawable.alert_light_frame)
                .setTitle("Alert Test")
                .setMessage("Matn Testi")
                .setPositiveButton("YES", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface arg0, int arg1) {
                        //YES Button
                    }
                })
                .setNegativeButton("NO", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface arg0, int arg1) {
                        //NO Button
                    }
                })
                .setNeutralButton("Cancel", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface arg0, int arg1) {
                        //Cancel Button
                    }
                });
        builder.create().show();

خب این شاید یکمی از لحاظ ساختار نوشتاری فرق کنه ولی خب مهم اینه که موضوع رو درک کنید.

ببینید 3 تا لیسنر یا ایونت تعریف کردیم که هر کدومش مربوط میشه به دکمه yes  و NO  و Cancel  که با کلیک شدن روی هر کدوم از دکمه ها چه اتفاقی رخ بده.

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

5.ProgressDialog :  معادل این رو هم توی بیسیک داریم که با نوشتم کد ProgressDialogShow  نمایش داده میشه.عکس ------>

 

progress.png

 

 اگه توجه کنید برای این دیالوگ یک دکمه OK  ایجاد کردیم که برای این دکمه هم می تونیم یک ایونت یا لیسنر تعریف کنیم :

        ProgressDialog pd = new ProgressDialog(DialogsActivity.this);
        pd.setTitle("Please Wiat");
        pd.setMessage("Processing");
        pd.setButton("ok", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1) {
               //Handle Code
            }
        });

        pd.show();

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

 

موفق مؤید باشید.

آموزشی از AnswerCenter.IR

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...