A veces, en AlertDialog , es necesario obtener información del usuario o personalizar de acuerdo con nuestros requisitos. Entonces creamos AlertDialogs personalizados. Esta publicación mostrará cómo personalizar los AlertDialogs y tomar la entrada de ellos.
A continuación se muestra la implementación paso a paso del enfoque anterior:
- Paso 1: Cree un archivo XML: custom_layout.xml . Agregue el siguiente código en custom_layout.xml. Este código define las dimensiones del cuadro de diálogo de alerta y agrega un texto de edición en él.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
- Paso 2: Agrega un botón en activity_main.xml . Cuando se hace clic en el botón, se mostrará el cuadro AlertDialog.
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
android:gravity
=
"center"
android:id
=
"@+id/root"
android:orientation
=
"vertical"
tools:context
=
".MainActivity"
>
<
Button
android:layout_width
=
"match_parent"
android:layout_height
=
"wrap_content"
android:onClick
=
"showAlertDialogButtonClicked"
android:text
=
"Show Dialog"
/>
</
LinearLayout
>
- Paso 3:
Agregue custom_layout.xml en esa actividad en la que desea mostrar el cuadro de diálogo de alerta personalizado aquí se agrega en MainActivity.java.
public
class
MainActivity
extends
AppCompatActivity {
@Override
protected
void
onCreate(
Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public
void
showAlertDialogButtonClicked(View view)
{
// Create an alert builder
AlertDialog.Builder builder
=
new
AlertDialog.Builder(
this
);
builder.setTitle(
"Name"
);
// set the custom layout
final
View customLayout
= getLayoutInflater()
.inflate(
R.layout.custom_layout,
null
);
builder.setView(customLayout);
// add a button
builder
.setPositiveButton(
"OK"
,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick(
DialogInterface dialog,
int
which)
{
// send data from the
// AlertDialog to the Activity
EditText editText
= customLayout
.findViewById(
R.id.editText);
sendDialogDataToActivity(
editText
.getText()
.toString());
}
});
// create and show
// the alert dialog
AlertDialog dialog
= builder.create();
dialog.show();
}
// Do something with the data
// coming from the AlertDialog
private
void
sendDialogDataToActivity(String data)
{
Toast.makeText(
this
,
data,
Toast.LENGTH_SHORT)
.show();
}
}
Producción:
Publicación traducida automáticamente
Artículo escrito por shad0w1947 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA