ventana studio emergente edittext custom crear con cerrar android alertdialog

studio - input dialog android



Android No descarte AlertDialog después de hacer clic en PositiveButton (4)

¿Puedo simplemente no descartar mi AlertDialog después de hacer clic en PositiveButton?

Me gustaría seguir siendo el cuadro de diálogo para mostrar algo actualizado en mi lista de ArrayAdapter listWords.

Este es mi código.

AlertDialog.Builder sayWindows = new AlertDialog.Builder(MapActivity.this); final EditText saySomething = new EditText(MapActivity.this); sayWindows.setPositiveButton("ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { say = userName + " Says: "+saySomething.getText(); showPosition.setText(say); } }); sayWindows.setNegativeButton("cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); sayWindows.setAdapter(listWords, null); sayWindows.setView(saySomething); sayWindows.create().show();


Aún más simple:

final AlertDialog alertDialog = new AlertDialog.Builder(context).setView(v) .setPositiveButton(android.R.string.ok, null) .setNegativeButton(android.R.string.cancel, null) .show(); Button b = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Do Your thing } });


Después de ver la solución de @Little Child, trato de hacer esto. Háganos saber si esto funciona para usted.

AlertDialog.Builder sayWindows = new AlertDialog.Builder( MapActivity.this); final EditText saySomething = new EditText(MapActivity.this); sayWindows.setPositiveButton("ok", null); sayWindows.setNegativeButton("cancel", null); sayWindows.setAdapter(listWords, null); sayWindows.setView(saySomething); final AlertDialog mAlertDialog = sayWindows.create(); mAlertDialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { Button b = mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // TODO Do something say = userName + " Says: "+saySomething.getText(); showPosition.setText(say); } }); } }); mAlertDialog.show();


Respuesta en Kotlin:

val dialog = AlertDialog.Builder(context) .setView(v) .setTitle(R.string.my_title) .setPositiveButton(android.R.string.ok, null) .setNegativeButton(android.R.string.cancel, null) .create() dialog.setOnShowListener { dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { // Apply logic here } }


basado en la respuesta más votada sobre cómo evitar que se cierre un cuadro de diálogo cuando se hace clic en un botón

final AlertDialog d = new AlertDialog.Builder(context) .setView(v) .setTitle(R.string.my_title) .setPositiveButton(android.R.string.ok, null) //Set to null. We override the onclick .setNegativeButton(android.R.string.cancel, null) .create(); d.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { Button b = d.getButton(AlertDialog.BUTTON_POSITIVE); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // TODO Do something } }); } });

Creo que necesitas anular el controlador del botón positivo. Agregue su lógica para descartar el diálogo cuando se cumpla una determinada condición.