AlertDialog
Cómo crear un AlertDialog a medida
How to Create a Custom AlertDialog in Android?
Crear el fichero custom_layout.xml
res/layout/custom_layout.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout ç xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingLeft="20dp" android:paddingRight="20dp"> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
Añadir un botón en activity_main.xml y asociarle el método showAlertDialogButtonClicked
res/layout/showAlertDialogButtonClicked
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/root" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" 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>
Mostrar el AlertDialog en el MainActivity
MainActivity.kt
import android.content.DialogInterface import android.os.Bundle import android.view.View import android.widget.EditText import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun showAlertDialogButtonClicked() { // Create an alert builder val builder = AlertDialog.Builder(this) builder.setTitle("Name") // set the custom layout val customLayout: View = layoutInflater.inflate(R.layout.custom_layout, null) builder.setView(customLayout) // add a button builder.setPositiveButton("OK") { dialog: DialogInterface?, which: Int -> // send data from the AlertDialog to the Activity val editText = customLayout.findViewById<EditText>(R.id.editText) sendDialogDataToActivity(editText.text.toString()) } // create and show the alert dialog val dialog = builder.create() dialog.show() } // Do something with the data coming from the AlertDialog private fun sendDialogDataToActivity(data: String) { Toast.makeText(this, data, Toast.LENGTH_SHORT).show() } }
Más información:
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.