ساخت دیالوگ (صفحه پیغام-alert Dialog) برای اندروید

با سلام، ساخت دیالوگ برای اندروید کار خیلی ساده ایه، کدش رو من پایین گذاشتم، مواردی که لازم بود رو توضیح دادم 

/////******* Sadegh Alert Dialog *********//////
                // Get the layout inflater
                LayoutInflater inflater = getLayoutInflater();

                final AlertDialog.Builder builder;


                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                    builder = new AlertDialog.Builder(UserProfileActivity.this, android.R.style.Theme_Material_Dialog_Alert);
                } else {
                    builder = new AlertDialog.Builder(UserProfileActivity.this);
                }
                

                builder.setTitle("Choose Profile Picture")
                        .setCancelable(true)
                        .setMessage("How can you choose Your Profile picture?")
                        .setPositiveButton("Gallery", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                // continue with delete
                            }
                        })
                        .setNegativeButton("Camera", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                // Checking camera availability
                                if (!isDeviceSupportCamera()) {
                                    Toast.makeText(getApplicationContext(),
                                            "Sorry! Your device doesn't support camera",
                                            Toast.LENGTH_LONG).show();
                                    // will close the app if the device does't have camera
                                    finish();
                                }
                                // capture picture
                                captureImage();
                            }
                        })
                        .setOnKeyListener(new DialogInterface.OnKeyListener() {
                            @Override
                            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                                if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP)
                                    dialog.dismiss();
                                return false;
                            }
                        })
                        .show();

 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                    builder = new AlertDialog.Builder(UserProfileActivity.this, android.R.style.Theme_Material_Dialog_Alert);
                } else {
                    builder = new AlertDialog.Builder(UserProfileActivity.this);
                }

قطعه کد بالا برای حل مشکل با ورژن های مختلف اندروید گذاشته شده.

 

.setCancelable(true) :

در خط بالا با true کردن این تنظیم، کاربر اگر بیرون از Dialog رو لمس کنه موجب بسته شدن دیالوگ میشه.

.setOnKeyListener(new DialogInterface.OnKeyListener() {
                            @Override
                            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                                if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP)
                                    dialog.dismiss();
                                return false;
                            }
                        })

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

 

مرجع: سایت AndroidDeveloper