رفتن به مطلب
بخش Unity به انجمن اضافه شد

انواع 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 کاربر

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