আমি কীভাবে কোনও অ্যান্ড্রয়েড সতর্কতা সংলাপে তৃতীয় বোতামটি যুক্ত করতে পারি?


118

এপিআই বলেছে যে সতর্কতা ডায়ালগটিতে একটি, দুটি বা তিনটি বোতাম থাকতে পারে, তবে এসডিকে কেবল একটি ইতিবাচক এবং নেতিবাচক বোতামের জন্য অনুমতি দেয়। তাহলে আমি কীভাবে তৃতীয় বোতামটি যুক্ত করতে পারি?



একটি সম্পূর্ণ ওভারভিউয়ের জন্য @ সুরাগ দরকারী উত্তর
করুনউইটস্ল্যাসম এখন

উত্তর:


136

এই কোড স্নিপেটে আপনি যে তিনটি ভিন্ন বোতাম ব্যবহার করতে পারেন তা ব্যাখ্যা করতে সহায়তা করা উচিত:

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

    alertDialog.setTitle("Dialog Button");

    alertDialog.setMessage("This is a three-button dialog!");

    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Button 1 Text", new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int id) {

        //...

    } }); 

    alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Button 2 Text", new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int id) {

        //...

    }}); 

    alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Button 3 Text", new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int id) {

        //...

    }});

29
এটি অবহেলিত ... আমার উত্তরটি একবার দেখুন।
নিনজাসনেসে

1
@ নিনজাসেঁসে, আপনি নিজের উত্তরটি লেখার সাথে সাথে আমি বুঝতে পেরেছিলাম এবং সম্পাদনা করছি। ধন্যবাদ!
সহহম

225

আপনি যখন ডায়লগটি তৈরি করছেন, তখন বিল্ডারে এই জাতীয় কিছু যুক্ত করুন:

builder = new AlertDialog.Builder(context);
builder.setTitle("Test");
builder.setIcon(R.drawable.icon);
builder.setMessage("test");
builder.setPositiveButton("Call Now",
        new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int id)
            {
                dialog.cancel();
            }
        });

builder.setNeutralButton("Setup",
        new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int id)
            {
                context.startActivity(new Intent(context, Setup.class));
                //dialog.cancel();
            }
        });

builder.setNegativeButton("Exit",
        new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int id)
            {
                dialog.cancel();
            }
        });
builder.create().show();

2
@ninjasense ডায়লগ সতর্ক করতে 4 র্থ বাটন যুক্ত করা সম্ভব?
গিপ

4
এই ক্ষেত্রে - না। আপনার একটি কাস্টম ভিউ করা উচিত।
অ্যান্ড্রুএস

কাস্টম সতর্কতা ডায়ালগ তৈরি করা আরও কার্যকর। stackoverflow.com/questions/13341560/…
জে চতুরাঙ্গ

50

যোগ কোন XML ছাড়া বোতাম সংখ্যা:

    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("Title");
    builder.setItems(new CharSequence[]
            {"button 1", "button 2", "button 3", "button 4"},
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // The 'which' argument contains the index position
                    // of the selected item
                    switch (which) {
                        case 0:
                            Toast.makeText(context, "clicked 1", 0).show();
                            break;
                        case 1:
                            Toast.makeText(context, "clicked 2", 0).show();
                            break;
                        case 2:
                            Toast.makeText(context, "clicked 3", 0).show();
                            break;
                        case 3:
                            Toast.makeText(context, "clicked 4", 0).show();
                            break;
                    }
                }
            });
    builder.create().show();

3
এই সমাধানটি বোতাম যুক্ত করছে না, যেমন "ঠিক আছে", "বাতিল", ইত্যাদি, বরং পছন্দসই তালিকায় প্রদর্শিত আইটেমগুলি সেট করা, যেমন, "বিকল্প 1", "বিকল্প 2" ইত্যাদি Since প্রশ্নটিতে উল্লেখ করা হয়েছে যে "SDK কেবলমাত্র একটি ইতিবাচক এবং নেতিবাচক বোতামের জন্য অনুমতি দেয়", এই সীমাবদ্ধতাটি কীভাবে কাটিয়ে উঠতে হবে তার উত্তর দেয় না।
d60402

3
@ d60402 - আপনার একটি ভাল পয়েন্ট রয়েছে তবে কোনও বিকাশকারী যদি 2 টিরও বেশি বোতামের সাথে একটি ডায়ালগ তৈরির উপায় অনুসন্ধান করেন তবে এই উত্তরটি পাওয়া যাবে ... এই বিকল্পটি থাকা খুব কার্যকর কারণ এটি বোতামের সংখ্যার সাথে আরও নমনীয়। এটিকে অন্যভাবে বলতে গেলে, আপনি যা করছেন তার জন্য যদি ইতিবাচক এবং নেতিবাচক বোতামগুলি পর্যাপ্ত না হয় তবে 3 টি বোতাম খুব দ্রুত 4 হয়ে যাবে। সুতরাং ভোট।
ওদেড ব্রেইনার

@ d60402 প্রশ্নের শিরোনামটি কীভাবে তৃতীয় বোতাম যুক্ত করা যায়, নিরপেক্ষ বোতামটি কীভাবে প্রদর্শন করা যায় তা নয়।
বরিস ট্রুখভ

@ বরিস ট্রুখভ - ডায়ালগটিতে যদি ইতিবাচক বোতাম এবং aণাত্মক বোতাম থাকে, তার অর্থ ডায়লগটির দুটি বোতাম রয়েছে। নিরপেক্ষ বোতাম যুক্ত করা সংলাপটি তৃতীয় বোতামটি দেবে। এই প্রশ্নের শীর্ষ দুটি উত্তর কী করছে তা মূলত এটি।
d60402

স্ট্যাকওভারফ্লো . com / a / 19658646 / 2914140- এ প্রদর্শিত হিসাবে , কোনও ডায়লগ বার্তা সেট না থাকলে এই সমাধানটি বোতামগুলি দেখায়।
কুলমাইন্ড

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

            // set title
            alertDialogBuilder.setTitle("To Do List");

            // set dialog message
            alertDialogBuilder
                    .setMessage("What do you want?")
                    .setCancelable(false)
                    .setPositiveButton("Delete All", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            // if this button is clicked, close
                            // current activity




                            dialog.cancel();


                        }
                    }).setNeutralButton("Delete", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // if this button is clicked, close
                    // current activity




                    dialog.cancel();

                }
            })
                    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            // if this button is clicked, just close
                            // the dialog box and do nothing

                            dialog.cancel();
                        }
                    });

            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();

            // show it
            alertDialog.show();

1
শীর্ষ 2 উত্তরের সাথে এর পার্থক্য কী?
FindOutIslam এখন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.