How do I display an alert dialog on Android?

后端 未结 30 2517
清歌不尽
清歌不尽 2020-11-22 03:02

I want to display a dialog/popup window with a message to the user that shows \"Are you sure you want to delete this entry?\" with one button that says \'Delete\'. When

相关标签:
30条回答
  • 2020-11-22 03:19

    Just a simple one! Create a dialog method, something like this anywhere in your Java class:

    public void openDialog() {
        final Dialog dialog = new Dialog(context); // Context, this, etc.
        dialog.setContentView(R.layout.dialog_demo);
        dialog.setTitle(R.string.dialog_title);
        dialog.show();
    }
    

    Now create Layout XML dialog_demo.xml and create your UI/design. Here is a sample one I created for demo purposes:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <TextView
            android:id="@+id/dialog_info"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="@string/dialog_text"/>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_below="@id/dialog_info">
    
            <Button
                android:id="@+id/dialog_cancel"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="0.50"
                android:background="@color/dialog_cancel_bgcolor"
                android:text="Cancel"/>
    
            <Button
                android:id="@+id/dialog_ok"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="0.50"
                android:background="@color/dialog_ok_bgcolor"
                android:text="Agree"/>
        </LinearLayout>
    </RelativeLayout>
    

    Now you can call openDialog() from anywhere you like :) Here is the screenshot of above code.

    Enter image description here

    Note that text and color are used from strings.xml and colors.xml. You can define your own.

    0 讨论(0)
  • 2020-11-22 03:19
    new AlertDialog.Builder(context)
        .setTitle("title")
        .setMessage("message")
        .setPositiveButton(android.R.string.ok, null)
        .show();
    
    0 讨论(0)
  • 2020-11-22 03:19

    I was using this AlertDialog in button onClick method:

    button.setOnClickListener(v -> {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        LayoutInflater layoutInflaterAndroid = LayoutInflater.from(this);
        View view2 = layoutInflaterAndroid.inflate(R.layout.cancel_dialog, null);
        builder.setView(view2);
        builder.setCancelable(false);
        final AlertDialog alertDialog = builder.create();
        alertDialog.show();
    
        view2.findViewById(R.id.yesButton).setOnClickListener(v1 -> onBackPressed());
        view2.findViewById(R.id.nobutton).setOnClickListener(v12 -> alertDialog.dismiss());
    });
    

    dialog.xml

    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    
    <TextView
        android:id="@+id/textmain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:gravity="center"
        android:padding="5dp"
        android:text="@string/warning"
        android:textColor="@android:color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    
    
    <TextView
        android:id="@+id/textpart2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:gravity="center"
        android:lines="2"
        android:maxLines="2"
        android:padding="5dp"
        android:singleLine="false"
        android:text="@string/dialog_cancel"
        android:textAlignment="center"
        android:textColor="@android:color/black"
        android:textSize="15sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textmain" />
    
    
    <TextView
        android:id="@+id/yesButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="40dp"
        android:layout_marginTop="5dp"
        android:layout_marginEnd="40dp"
        android:layout_marginBottom="5dp"
        android:background="#87cefa"
        android:gravity="center"
        android:padding="10dp"
        android:text="@string/yes"
        android:textAlignment="center"
        android:textColor="@android:color/black"
        android:textSize="15sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textpart2" />
    
    
    <TextView
        android:id="@+id/nobutton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="40dp"
        android:layout_marginTop="5dp"
        android:layout_marginEnd="40dp"
        android:background="#87cefa"
        android:gravity="center"
        android:padding="10dp"
        android:text="@string/no"
        android:textAlignment="center"
        android:textColor="@android:color/black"
        android:textSize="15sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/yesButton" />
    
    
    <TextView
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:layout_margin="5dp"
        android:padding="10dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/nobutton" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    0 讨论(0)
  • 2020-11-22 03:22

    You can use this code:

    AlertDialog.Builder alertDialog2 = new AlertDialog.Builder(
        AlertDialogActivity.this);
    
    // Setting Dialog Title
    alertDialog2.setTitle("Confirm Delete...");
    
    // Setting Dialog Message
    alertDialog2.setMessage("Are you sure you want delete this file?");
    
    // Setting Icon to Dialog
    alertDialog2.setIcon(R.drawable.delete);
    
    // Setting Positive "Yes" Btn
    alertDialog2.setPositiveButton("YES",
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Write your code here to execute after dialog
                Toast.makeText(getApplicationContext(),
                               "You clicked on YES", Toast.LENGTH_SHORT)
                        .show();
            }
        });
    
    // Setting Negative "NO" Btn
    alertDialog2.setNegativeButton("NO",
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Write your code here to execute after dialog
                Toast.makeText(getApplicationContext(),
                               "You clicked on NO", Toast.LENGTH_SHORT)
                        .show();
                dialog.cancel();
            }
        });
    
    // Showing Alert Dialog
    alertDialog2.show();
    
    0 讨论(0)
  • 2020-11-22 03:22
    // Dialog box
    
    public void dialogBox() {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setMessage("Click on Image for tag");
        alertDialogBuilder.setPositiveButton("Ok",
            new DialogInterface.OnClickListener() {
    
                @Override
                public void onClick(DialogInterface arg0, int arg1) {
            }
        });
    
        alertDialogBuilder.setNegativeButton("cancel",
            new DialogInterface.OnClickListener() {
    
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
    
            }
        });
    
        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }
    
    0 讨论(0)
  • 2020-11-22 03:23

    I have created a dialog for asking a Person whether he wants to call a Person or not.

    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("Avbryt", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialog, int which)
                {
                    dialog.dismiss();
                }
            });
    
            builder.show();
        }
    }
    
    0 讨论(0)
提交回复
热议问题