অ্যান্ড্রয়েডে কীভাবে হ্যাঁ / না ডায়ালগ বক্স প্রদর্শন করবেন?


358

হ্যাঁ, আমি জানি অ্যালার্টডায়ালগ.বিল্ডার রয়েছে তবে অ্যান্ড্রয়েডে একটি ডায়ালগ প্রদর্শন করা কতটা কঠিন (ভাল, কমপক্ষে প্রোগ্রামার বান্ধব নয়) তা জানতে পেরে আমি হতবাক হয়েছি।

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

if (MessageBox.Show("Sure?", "", MessageBoxButtons.YesNo) == DialogResult.Yes){
    // Do something...
}


3
আমি কীভাবে সতর্কতা ডায়ালগ কোডটি পুনরায় উত্থাপন করব এবং সমস্ত স্ক্রিনে ইভেন্টগুলি হ্যাঁ (হ্যাঁ, কোনও পদক্ষেপ নেই)? .Net তে আমরা ইভেন্টগুলি পরিচালনা করতে অ্যাকশন ক্লাস ব্যবহার করি, এটি বাস্তবায়নের কোনও উপায় আছে কি? আমি জানি ইন্টারফেস ব্যবহার করে আমরা এটি করতে পারি তবে কোনও বিকল্প উপায়?
রবিকুমার 11

2
হ্যাঁ .... আমরা। নেট বিকাশকারীদের অ্যান্ড্রয়েডের সাথে সত্যই কঠিন সময় কাটাতে হবে .... আমি অবাক হয়েছি যে জামারিন একটি দুর্দান্ত সরঞ্জাম কিনা?
ড্যানিয়েল মুলার

উত্তর:


744

সতর্কতা ডায়ালগ.বিল্ডার সত্যই ব্যবহার করা এত কঠিন নয়। এটি নিশ্চিতভাবে প্রথমে কিছুটা ভয় দেখানো, তবে একবার এটি ব্যবহার করার পরে এটি সহজ এবং শক্তিশালী উভয়ই। আমি জানি আপনি বলেছেন আপনি এটি কীভাবে ব্যবহার করতে জানেন তবে এখানে যাইহোক এখানে একটি সাধারণ উদাহরণ:

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        switch (which){
        case DialogInterface.BUTTON_POSITIVE:
            //Yes button clicked
            break;

        case DialogInterface.BUTTON_NEGATIVE:
            //No button clicked
            break;
        }
    }
};

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Are you sure?").setPositiveButton("Yes", dialogClickListener)
    .setNegativeButton("No", dialogClickListener).show();

আপনি যদি আবার হ্যাঁ / কোনও বাক্স না করেন তবে একই জিনিসটি করা উচিত তা DialogInterface.OnClickListenerআপনি পুনরায় ব্যবহার করতে পারেন ।

যদি আপনি একটি এর মধ্যে থেকে ডায়ালগ তৈরি করে থাকেন তবে আপনি প্রসঙ্গটি পেতে View.OnClickListenerব্যবহার করতে পারেন view.getContext()। বিকল্পভাবে আপনি ব্যবহার করতে পারেন yourFragmentName.getActivity()


3
নতুন সতর্কতা ডায়ালগ.বিল্ডার (এটি); সংকলনের সময় ত্রুটি: 'কনস্ট্রাক্টর অ্যালার্টডায়ালগ.বিল্ডার (নতুন দেখুন.অনিক্লিকলিস্টার ()}})
অপরিজ্ঞাত

3
সাধারণ এবং দরকারী, বিটিডাব্লু, ডায়ালগটি ব্যবহারকারী "ইয়েস" বা "না" বোতাম ক্লিক করার পরে নিজেকে খারিজ করে দেবে। আপনার কিছু করার দরকার নেই।
আরআরটিডব্লিউ

9
আমি নিজে, আমি এটি অনেকবার ব্যবহার করেছি। তবে আমি খুঁজে পেয়েছি যে এটির জন্য এটি অনুসন্ধান করা আসলে সহজ এবং দ্রুত। এখানে দেওয়া কোডের নমুনাটি এত সহজ ... আমি সত্যিই Android এর ডকুমেন্টেশনটি দেখতে চাই wish
রাদু

4
@ এরিকলিশনস্কি সম্ভবত "এটি" একটি প্রসঙ্গ নয়, এটি চেষ্টা করে দেখুন: AlertDialog.Builder builder = new AlertDialog.Builder(getView().getContext());
সিএলডিআর

1
@ ডেভিডগ্লোরিওসো হ্যাঁ / না বা না / হ্যাঁর ক্রমটি Android এর সংস্করণের উপর নির্ভর করে এবং আপনি এটি নিয়ন্ত্রণ করতে পারবেন না। কখন এটি পরিবর্তন হয়েছিল আমি মনে করি না তবে আমি মনে করি এটি 4.x বা 5 এর মধ্যে ছিল that কথাটি বলার অপেক্ষা রাখে না, আপনার এটিকে যাইহোক পরিবর্তন করা উচিত নয়। সমস্ত অ্যাপ্লিকেশন যা স্ট্যান্ডার্ড সতর্কতা ডায়ালগ ব্যবহার করে তারা একই নং / হ্যাঁ বোতাম ক্রম ব্যবহার করবে এবং আপনার ব্যবহারকারীর পক্ষে আলাদা থাকলে এটি বিভ্রান্তিকর হবে। আপনি যদি সত্যিই এটি আলাদা হতে চান তবে আপনাকে অ্যানড্রয়েড সংস্করণের উপর নির্ভরশীল আপনার ইতিবাচক / নেতিবাচক বোতামগুলি ম্যানুয়ালি সেট করতে হবে।
স্টিভ হ্যালি

163

এটা চেষ্টা কর:

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

builder.setTitle("Confirm");
builder.setMessage("Are you sure?");

builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int which) {
        // Do nothing but close the dialog

        dialog.dismiss();
    }
});

builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {

        // Do nothing
        dialog.dismiss();
    }
});

AlertDialog alert = builder.create();
alert.show();

25
ব্যক্তিগতভাবে, আমি স্বীকৃত উত্তরের চেয়ে কোড স্নিপেটটি বেশি পছন্দ করি
জন

1
@ নিক্কি কেন উভয়কেই বরখাস্ত করা হয়েছে ()?
likejudo

The constructor AlertDialog.Builder(MainActivity.DrawerItemClickListener) is undefined
হ্যাশ

@ লাইকজিউজিৎসু আপনাকে কাজটি করার পরে যে কোনও ক্ষেত্রে মেমরি থেকে ডায়লগটি পরিষ্কার করতে চান তা বিরক্ত করে।
আভি লেভিন

32

স্টিভ এইচ এর উত্তর সুনিশ্চিত, তবে এখানে আরও কিছু তথ্য: ডায়লগগুলি যেভাবে তাদের কাজ করে সে কারণটি অ্যান্ড্রয়েডে সংলাপগুলি অবিচ্ছিন্ন (ডায়ালগটি প্রদর্শিত হলে কার্যকর করা বন্ধ হয় না)। এ কারণে, ব্যবহারকারীর নির্বাচন পরিচালনা করতে আপনাকে একটি কলব্যাক ব্যবহার করতে হবে।

অ্যান্ড্রয়েড এবং .NET (যেমন এটি ডায়লগগুলির সাথে সম্পর্কিত) এর মধ্যে দীর্ঘ আলোচনার জন্য এই প্রশ্নটি পরীক্ষা করে দেখুন: ডায়ালগ / সতর্কতা ডায়ালগগুলি: ডায়ালগটি চলাকালীন "ব্লক এক্সিকিউশন" কীভাবে করবেন (। নেট-স্টাইল)


8
ধন্যবাদ, অ্যান্ড্রয়েড কথোপকথনগুলি অ্যাসিনক্রোনাস হওয়ায় এখন সমস্ত কিছু পরিষ্কার (এবং যুক্তিসঙ্গত) হয়ে যায় makes মনে হয় অ্যান্ড্রয়েডের জন্য অ্যাপ্লিকেশনগুলি বিকাশ করার সময় আমার "নেট থেকে চিন্তাভাবনা করা দরকার" :)
সোলো

এফওয়াইআই: আপনি যাকে "অ্যাসিঙ্ক্রোনাস ডায়ালগ" বলছেন তাকে জিইউআই পরিভাষায় "মোডলেস ডায়ালগ" বলা হয়, যেখানে "সিঙ্ক্রোনাস ডায়ালগ" বলা হয় "মডেল ডায়ালগ"। অ্যান্ড্রয়েডে মডেল কথোপকথনগুলি প্রদর্শিত হয় না (খুব ব্যতিক্রমী ক্ষেত্রে বাদে)।
অ্যালেক্স

অ্যান্ড্রয়েড খুব ভাল কারণে সিস্টেমের মডেল সংলাপগুলির মঞ্জুরি দেয় না: ডিভাইসে থাকা অন্য অ্যাপ্লিকেশনে হস্তক্ষেপের অনুমতি নেই।
রেনাসিয়েনজা

14

এটি আমার পক্ষে কাজ করছে:

AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());

    builder.setTitle("Confirm");
    builder.setMessage("Are you sure?");

    builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {

            // Do nothing, but close the dialog
            dialog.dismiss();
        }
    });

    builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {

            // Do nothing
            dialog.dismiss();
        }
    });

    AlertDialog alert = builder.create();
    alert.show();

7

কোনও ব্যক্তিকে জিজ্ঞাসা করা হোক তিনি ডায়ালগ কল করতে চান কি না ..

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.Toast;

public class Firstclass extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.first);

        ImageView imageViewCall = (ImageView) findViewById(R.id.ring_mig);

        imageViewCall.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v){
                try{
                    showDialog("0728570527");
                } catch (Exception e){
                    e.printStackTrace();
                }                   
            }    
        });    
    }

    public void showDialog(final String phone) throws Exception {
        AlertDialog.Builder builder = new AlertDialog.Builder(Firstclass.this);

        builder.setMessage("Ring: " + phone);       

        builder.setPositiveButton("Ring", new DialogInterface.OnClickListener(){
            @Override
            public void onClick(DialogInterface dialog, int which){

                Intent callIntent = new Intent(Intent.ACTION_DIAL);// (Intent.ACTION_CALL);                 
                callIntent.setData(Uri.parse("tel:" + phone));
                startActivity(callIntent);

                dialog.dismiss();
            }
        });

        builder.setNegativeButton("Abort", new DialogInterface.OnClickListener(){   
            @Override
            public void onClick(DialogInterface dialog, int which){
                dialog.dismiss();
            }
        });         
        builder.show();
    }    
}

5

স্টিভের উত্তরটি টুকরাগুলির সাথে পুরানো হলেও সঠিক। ফ্রেগমেন্টডায়ালগ সহ এখানে একটি উদাহরণ।

শ্রেণী:

public class SomeDialog extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        return new AlertDialog.Builder(getActivity())
            .setTitle("Title")
            .setMessage("Sure you wanna do this!")
            .setNegativeButton(android.R.string.no, new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // do nothing (will close dialog)
                }
            })
            .setPositiveButton(android.R.string.yes,  new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // do something
                }
            })
            .create();
    }
}

কথোপকথন শুরু করতে:

            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            // Create and show the dialog.
            SomeDialog newFragment = new SomeDialog ();
            newFragment.show(ft, "dialog");

আপনি ক্লাসটি onClickListenerএম্বেড শ্রোতার পরিবর্তে প্রয়োগ করতে এবং এটি ব্যবহার করতে দিতে পারেন।


উপরে লাইক জিউজিৎসু যথেষ্ট
ওয়ারপজিট

কেবলমাত্র একটি / হ্যাঁ বক্স করার জন্য ফ্রেগমেন্টডায়ালগ ক্লাস তৈরি করুন কিছুটা ওভারডিজাইন ... :) একটি ডিফল্ট সতর্কতা ডায়ালগ যথেষ্ট ন্যায্য, তবুও।
রেনাসিয়েনজা

@ রেনাসিয়েনজা হ্যাঁ তবে আমি বিশ্বাস করি এটি অচল।
ওয়ার্পজিট

আসলে তা না. ডায়ালগটিতে একটি খণ্ডকে পুনরায় ব্যবহার করার অনুমতি দেওয়ার জন্য ফ্রেগমেন্টডায়ালগ একটি দরকারী জিনিস হিসাবে যুক্ত করা হয়েছিল। খণ্ডগুলি ইউআই পুনরায় ব্যবহার সম্পর্কে সমস্ত। যেহেতু আপনার টুকরো টুকরোটি কেবল নতুন জিনিস হিসাবে ব্যবহার করার প্রয়োজন নেই (টুকরোগুলি ক্রিয়াকলাপগুলি প্রতিস্থাপন করতে আসে না), তাই কোনও লাভ নেই এমন ক্ষেত্রে আপনার ফ্রেগমেন্টডায়ালগ ব্যবহার করার দরকার নেই। উদাহরণস্বরূপ সাধারণ হ্যাঁ / কোনও সতর্কতা নেই।
রেনাসিয়েনজা

2
আমার সুপারিশটি হ'ল: আপনার যদি কেবল একটি বিন্যাস নয়, তবে পটভূমি এবং জীবনচক্র কোডটি পুনরায় ব্যবহারের প্রয়োজন হয় তবে একটি খণ্ড ডায়ালগটি ব্যবহার করুন। টুকরাটির সাথে আপনার সম্পর্কিত ক্রিয়াকলাপটি লাইফসাইकल নিয়ন্ত্রণ রয়েছে এবং এটি তৈরির মতো ইভেন্টগুলিতে প্রতিক্রিয়া জানাতে পারে (যখন ব্যবহারকারী তার ডিভাইসটি ঘোরানোর সময় ইউআই পুনরায় তৈরি করা হয়), বিরতি দেওয়া, পুনরায় শুরু করা ইত্যাদি সংক্ষেপে কিছু সংক্ষিপ্ত বিবরণযুক্ত ইউআই সহ একটি সংলাপ। আপনার যদি এটির প্রয়োজন না হয় এবং আপনার ডায়ালগটি বেশ সহজ, নিয়মিত ডায়ালগগুলি ভাল কাজ করে।
রেনাসিয়েনজা

5

ধন্যবাদ নিক্কি আপনার উত্তরটি আমাকে নিম্নরূপে আমার পছন্দসই ক্রিয়াটি যুক্ত করে একটি বিদ্যমান উন্নতি করতে সহায়তা করেছে

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

builder.setTitle("Do this action");
builder.setMessage("do you want confirm this action?");

builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int which) {
        // Do do my action here

        dialog.dismiss();
    }

});

builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // I do not need any action here you might
        dialog.dismiss();
    }
});

AlertDialog alert = builder.create();
alert.show();

আমি এই ধারণাটি পেয়েছি যে ওপি সতর্কতা ডায়ালগ.বিল্ডার ব্যবহার করতে চায় না। ওপি শর্টকাট ইউটিলিটি পদ্ধতি আছে কিনা তা জানতে অপেক্ষা করে,
ওয়ালারি

1
আমি একই কোডটি লিখেছি তবে প্রথমে কোনও উপস্থিত নেই এবং পরে হ্যাঁ মূলত এটি কোনও NO / YES ডায়ালগ বাক্স তবে আমার একটি হ্যাঁ / কোনও ডায়ালগ বাক্স দরকার আমি কীভাবে এটি করব
সাগর দেবঙ্গা

হ্যাঁ হিসাবে / কোন বনাম কোন / হ্যাঁ এই উত্তরটি দেখুন: stackoverflow.com/a/13644589/1815624 : যদি আপনি এই উত্তরে discribed যেমন নিপূণভাবে পারেন stackoverflow.com/a/13644536/1815624
CrandellWS

4

কোটলিনে:

AlertDialog.Builder(this)
    .setTitle(R.string.question_title)
    .setMessage(R.string.question_message)
    .setPositiveButton(android.R.string.yes) { _, _ -> yesClicked() }
    .setNegativeButton(android.R.string.no) { _, _ -> noClicked() }
    .show()

3

কমান্ডের শৃঙ্খলা হিসাবে এবং অন্য কোনও বস্তুর সংজ্ঞা না দিয়ে বেনামে ডায়ালগটি দেখান:

 new AlertDialog.Builder(this).setTitle("Confirm Delete?")
                        .setMessage("Are you sure?")
                        .setPositiveButton("YES",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {

                                       // Perform Action & Dismiss dialog                                 
                                        dialog.dismiss();
                                    }
                                })
                        .setNegativeButton("NO", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // Do nothing
                                dialog.dismiss();
                            }
                        })
                        .create()
                        .show();

2

এখানে সমস্ত উত্তরগুলি দীর্ঘ এবং পাঠক-বান্ধব কোডের মধ্যে না ফোটে: কেবল ব্যক্তি যা জিজ্ঞাসা করছে তা এড়াতে চাইছিল। আমার কাছে, এখানে সবচেয়ে সহজ পদ্ধতি ছিল ল্যাম্বডাস নিয়োগ করা:

new AlertDialog.Builder(this)
        .setTitle("Are you sure?")
        .setMessage("If you go back you will loose any changes.")
        .setPositiveButton("Yes", (dialog, which) -> {
            doSomething();
            dialog.dismiss();
        })
        .setNegativeButton("No", (dialog, which) -> dialog.dismiss())
        .show();

অ্যান্ড্রয়েডে ল্যাম্বডাসের জন্য রেট্রোলাম্বদা প্লাগইন প্রয়োজন ( https://github.com/evant/gradle-retrolambda ), তবে এটি যাইহোক ক্লিনার কোড লেখার ক্ষেত্রে অত্যন্ত সহায়ক।


1

ধন্যবাদ। আমি এপিআই স্তর 2 (অ্যান্ড্রয়েড 1.1) ব্যবহার করি এবং এর পরিবর্তে BUTTON_POSITIVEএবং BUTTON_NEGATIVEআমাকে ব্যবহার করতে হয় BUTTON1এবং BUTTON2


1

1. সতর্কতা ডায়ালগ সেট বার্তা, শিরোনাম এবং ধনাত্মক, নেতিবাচক বোতাম তৈরি করুন:

final AlertDialog alertDialog = new AlertDialog.Builder(this)
                        .setCancelable(false)
                        .setTitle("Confirmation")
                        .setMessage("Do you want to remove this Picture?")
                        .setPositiveButton("Yes",null)
                        .setNegativeButton("No",null)
                        .create();

২.এখন ডায়ালগইনটারফেসে দুটি বোতাম সন্ধান করুন তারপরে সেটঅনক্লিকলিস্টার () সেট করুন:

alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
            @Override
            public void onShow(DialogInterface dialogInterface) {
                Button yesButton = (alertDialog).getButton(android.app.AlertDialog.BUTTON_POSITIVE);
                Button noButton = (alertDialog).getButton(android.app.AlertDialog.BUTTON_NEGATIVE);
                yesButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        //Now Background Class To Update Operator State
                        alertDialog.dismiss();
                        Toast.makeText(GroundEditActivity.this, "Click on Yes", Toast.LENGTH_SHORT).show();
                        //Do Something here 
                    }
                });

                noButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        alertDialog.dismiss();
                        Toast.makeText(GroundEditActivity.this, "Click on No", Toast.LENGTH_SHORT).show();
                        //Do Some Thing Here 
                    }
                });
            }
        });

৩.আরল্টডিয়ালগ দেখানোর জন্য:

alertDialog.show();

দ্রষ্টব্য: সতর্কতা ডায়ালগ সহ চূড়ান্ত কীওয়ার্ডটি ভুলে যাবেন না।


0
AlertDialog.Builder altBx = new AlertDialog.Builder(this);
    altBx.setTitle("My dialog box");
    altBx.setMessage("Welcome, Please Enter your name");
    altBx.setIcon(R.drawable.logo);

    altBx.setPositiveButton("Ok", new DialogInterface.OnClickListener()
    {
      public void onClick(DialogInterface dialog, int which)
      {
          if(edt.getText().toString().length()!=0)
          {
              // Show any message
          }
          else 
          {

          }
      }
    });
    altBx.setNeutralButton("Cancel", new DialogInterface.OnClickListener()
    {
      public void onClick(DialogInterface dialog, int which)
      {
          //show any message
      }

    });
  altBx.show();  

0

আপনি সিদ্ধান্তের জন্য জেনেরিক সমাধান বাস্তবায়ন করতে পারেন এবং কেবল হ্যাঁ / না এর জন্য নয় এবং অ্যানিমেশন বা বিন্যাস সহ সতর্কতাটি কাস্টম করতে পারেন:

এটার মতো কিছু; স্থানান্তরিত ডেটাসের জন্য প্রথমে আপনার শ্রেণি তৈরি করুন:

public class AlertDecision {

    private String question = "";
    private String strNegative = "";
    private String strPositive = "";

    public AlertDecision question(@NonNull String question) {
        this.question = question;
        return this;
    }

    public AlertDecision ansPositive(@NonNull String strPositive) {
        this.strPositive = strPositive;
        return this;
    }

    public AlertDecision ansNegative(@NonNull String strNegative) {
        this.strNegative = strNegative;
        return this;
    }

    public String getQuestion() {
        return question;
    }

    public String getAnswerNegative() {
        return strNegative;
    }

    public String getAnswerPositive() {
        return strPositive;
    }
}

ফলাফল ফেরত দেওয়ার জন্য একটি ইন্টারফেসের পরে

public interface OnAlertDecisionClickListener {

    /**
     * Interface definition for a callback to be invoked when a view is clicked.
     *
     * @param dialog the dialog that was clicked
     * @param object The object in the position of the view
     */
    void onPositiveDecisionClick(DialogInterface dialog, Object object);
    void onNegativeDecisionClick(DialogInterface dialog, Object object);
}

এখন আপনি সহজেই অ্যাক্সেসের জন্য একটি ব্যবহার তৈরি করতে পারেন (এই শ্রেণিতে আপনি সতর্কতার জন্য বিভিন্ন অ্যানিমেশন বা কাস্টম বিন্যাস প্রয়োগ করতে পারেন):

public class AlertViewUtils {

    public static void showAlertDecision(Context context,
                                         @NonNull AlertDecision decision,
                                         final OnAlertDecisionClickListener listener,
                                         final Object object) {

        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage(decision.getQuestion());
        builder.setPositiveButton(decision.getAnswerPositive(),
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        listener.onPositiveDecisionClick(dialog, object);
                    }
                });

        builder.setNegativeButton(decision.getAnswerNegative(),
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        listener.onNegativeDecisionClick(dialog, object);
                    }
                });

        android.support.v7.app.AlertDialog dialog = builder.create();
        dialog.show();
    }
}

এবং ক্রিয়াকলাপ বা খণ্ডে সর্বশেষ কল; আপনি এটি আপনার ক্ষেত্রে বা অন্য কাজের জন্য ব্যবহার করতে পারেন:

public class MainActivity extends AppCompatActivity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);
        initResources();
    }

    public void initResources() {
        Button doSomething = (Button) findViewById(R.id.btn);
        doSomething.setOnClickListener(getDecisionListener());
    }

    private View.OnClickListener getDecisionListener() {
        return new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDecision decision = new AlertDecision()
                        .question("question ...")
                        .ansNegative("negative action...")
                        .ansPositive("positive action... ");
                AlertViewUtils.showAlertDecision(MainActivity.this,
                        decision, getOnDecisionListener(), v);
            }
        };
    }

    private OnAlertDecisionClickListener getOnDecisionListener() {
        return new OnAlertDecisionClickListener() {
            @Override
            public void onPositiveDecisionClick(DialogInterface dialog, Object object) {

                //do something like create, show views, etc...
            }

            @Override
            public void onNegativeDecisionClick(DialogInterface dialog, Object object) {
                //do something like delete, close session, etc ...
            }
        };
    }
} 


0

অ্যান্ড্রয়েডে কোটলিনের জন্য ::

    override fun onBackPressed() {
        confirmToCancel()
    }

    private fun confirmToCancel() {
        AlertDialog.Builder(this)
            .setTitle("Title")
            .setMessage("Do you want to cancel?")
            .setCancelable(false)
            .setPositiveButton("Yes") {
                dialog: DialogInterface, _: Int ->
                dialog.dismiss()
                // for sending data to previous activity use
                // setResult(response code, data)
                finish()
            }
            .setNegativeButton("No") {
                dialog: DialogInterface, _: Int ->
                dialog.dismiss()
            }
            .show()
    } 

0

কোটলিন বাস্তবায়ন।

আপনি এর মতো একটি সাধারণ ফাংশন তৈরি করতে পারেন:

fun dialogYesOrNo(
        activity: Activity,
        title: String,
        message: String,
        listener: DialogInterface.OnClickListener
    ) {
        val builder = AlertDialog.Builder(activity)
        builder.setPositiveButton("Yes", DialogInterface.OnClickListener { dialog, id ->
            dialog.dismiss()
            listener.onClick(dialog, id)
        })
        builder.setNegativeButton("No", null)
        val alert = builder.create()
        alert.setTitle(title)
        alert.setMessage(message)
        alert.show()
    }

এবং এটিকে কল করুন:

dialogYesOrNo(
  this,
  "Question",
  "Would you like to eat?",
  DialogInterface.OnClickListener { dialog, id ->
    // do whatever you need to do when user presses "Yes"
  }
})
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.