AlertDialog en Android es uno de los widgets de la interfaz de usuario que aparece inmediatamente para confirmar la interacción del usuario o para confirmar la acción realizada por el usuario. En la mayoría de las aplicaciones, la posición del diálogo de alerta en el centro. En este artículo, se ha discutido cómo cambiar la posición del cuadro de diálogo de alerta en Android. Observe la siguiente imagen para diferenciar el cuadro de diálogo de alerta normal con la posición central y el cuadro de diálogo de alerta con la posición modificada.
Pasos para implementar el diálogo de alerta con diferente posición
Paso 1: crear un proyecto de actividad vacío
- Cree un proyecto de estudio de Android de actividad vacío. Y seleccione Java como lenguaje de programación.
- Consulte Android | ¿Cómo crear/comenzar un nuevo proyecto en Android Studio? para saber cómo crear un proyecto con el proyecto de estudio de Android de actividad vacía.
Paso 2: trabajar con el archivo activity_main.xml
- El diseño principal de la aplicación contiene un botón que se usa para construir y mostrar el cuadro de diálogo de alerta en la posición especificada.
- Invoque el siguiente código dentro del archivo activity_main.xml para implementar la interfaz de usuario.
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" tools:ignore="HardcodedText"> <Button android:id="@+id/showAlertDialogButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:backgroundTint="@color/colorPrimary" android:text="SHOW ALERT DIALOG" android:textColor="@android:color/white" android:textSize="18sp" /> </RelativeLayout>
Interfaz de usuario de salida:
Paso 3: trabajar con el archivo MainActivity.java
Para cambiar la posición del cuadro de diálogo de alerta en la parte superior de la ventana de Android, invoque el siguiente código para implementar. Se agregan comentarios para una mejor comprensión.
Java
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // register the button with it's appropriate ID Button bShowAlertDialog = findViewById(R.id.showAlertDialogButton); // handle the SHOW ALERT DIALOG BUTTON bShowAlertDialog.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // instance of alert dialog to build alert dialog AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.logo); builder.setTitle("This is Alert Dialog"); builder.setMessage("Bottom Alert dialog"); // set the neutral button to do some actions builder.setNeutralButton("DISMISS", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "Alert Dialog Dismissed", Toast.LENGTH_SHORT).show(); } }); // set the positive button to do some actions builder.setPositiveButton("OKAY", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "OKAY", Toast.LENGTH_SHORT).show(); } }); // set the negative button to do some actions builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "CANCEL", Toast.LENGTH_SHORT).show(); } }); // show the alert dialog AlertDialog alertDialog = builder.create(); alertDialog.show(); // get the top most window of the android // screen using getWindow() method // and set the gravity of the window to // top that is alert dialog will be now at // the topmost position alertDialog.getWindow().setGravity(Gravity.TOP); } }); } }
Salida: ejecutar en el emulador
Para cambiar la posición del cuadro de diálogo de alerta en la parte inferior de la ventana de Android, invoque el siguiente código para implementar. Se agregan comentarios para una mejor comprensión.
Java
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // register the button with it's appropriate ID Button bShowAlertDialog = findViewById(R.id.showAlertDialogButton); // handle the SHOW ALERT DIALOG BUTTON bShowAlertDialog.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // instance of alert dialog to build alert dialog AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.drawable.logo); builder.setTitle("This is Alert Dialog"); builder.setMessage("Bottom Alert dialog"); // set the neutral button to do some actions builder.setNeutralButton("DISMISS", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "Alert Dialog Dismissed", Toast.LENGTH_SHORT).show(); } }); // set the positive button to do some actions builder.setPositiveButton("OKAY", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "OKAY", Toast.LENGTH_SHORT).show(); } }); // set the negative button to do some actions builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "CANCEL", Toast.LENGTH_SHORT).show(); } }); // show the alert dialog AlertDialog alertDialog = builder.create(); alertDialog.show(); // get the top most window of the android // scree using getWindow() method // and set the gravity of the window to // top that is alert dialog will be now at // the bottom position alertDialog.getWindow().setGravity(Gravity.BOTTOM); } }); } }
Salida: ejecutar en el emulador
Publicación traducida automáticamente
Artículo escrito por adityamshidlyali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA