Findviewbyid devuelve null en un diálogo
Tengo un diálogo personalizado y cuando intento conseguir el valor de un EditText devuelve null.
Esta línea devuelve null
- Ejecución de múltiples servicios
- Problemas con https (sin certificado de igual) en android
- ¿Alguien puede sugerir una alternativa más rápida a este algoritmo de regex?
- Java.security.InvalidKeyException: Tamaño de clave no válida o parámetros predeterminados en android
- Las invitaciones a los servicios de juegos de Google se pierden
EditText et = (EditText)findViewById(R.id.username_edit);
Aquí está el código en su totalidad.
protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_TEXT_ENTRY: LayoutInflater factory = LayoutInflater.from(this); final View textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null); return new AlertDialog.Builder(TicTacToe.this) //.setIconAttribute(android.R.attr.alertDialogIcon) .setTitle(getTitleText()) .setView(textEntryView) .setPositiveButton("JOIN GAME", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { try { EditText et = (EditText)findViewById(R.id.username_edit); playerName = et.getText().toString(); } catch (Exception e) { } } }) .create(); } return null; }
- ¿Android WebView no carga URL?
- AndroidBillingLibrary: Servicio remoto se bloqueó en BillingController.requestPurchase
- Cómo determinar la unidad de píxeles (px, dp, etc) de una vista en Java?
- ¿Cómo usar PJSIP en Android?
- FileNotFoundException para el archivo apk con HttpURLConnection en Android
- (MapView y 1700 elementos de superposición) .equals ("Slow")
- OnPageFinished no disparar correctamente al procesar la página web
- ¿Es una mala idea usar printStackTrace () en Android Exceptions?
Prueba esto:
EditText et = (EditText)textEntryView.findViewById(R.id.username_edit);
Usted tiene que decir en qué vista para encontrar el id. De lo contrario, tratará de encontrar el identificador en la vista desde la disposición xml inflada por setContentView
(normalmente declarado en onCreate
)
En mi caso: Primero tengo que llamar al
Dialog.show (),
Y sólo después de que yo era capaz de utilizar
Dialog.findviewById (R.id.myID).
Si me faltó para llamar al show (), que tengo un nulo de nuevo con findViewByID.
Me enfrenté a un problema similar. En mi caso, tuve un diálogo con diseño personalizado y en este diseño tenía un radioButton. Para resolver eso, utilicé el código de seguimiento:
View dialogLayout = factory.inflate(R.layout.dialog_layout, null); AlertDialog.Builder dialog = new AlertDialog.Builder(context); dialog.setView(dialogLayout); RadioButton radiobt = (RadioButton) dialogLayout.findViewById(R.id.radioBt);
Yo estaba teniendo el mismo problema, que se presentó en el siguiente fragmento de código:
final Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.addbank_dialog); dialog.show(); Button btnSaveBank = (Button)dialog.findViewById(R.id.btnSaveBank); final EditText etBankName = (EditText)dialog.findViewById(R.id.etBankName); btnSaveBank.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try{ String bank = etBankName.getText().toString(); SharedCommonData.dbOps.saveBankInDB(bank); } catch(Exception e){ e.printStackTrace(); } Toast.makeText(SharedCommonData.context, "Bank Saved", Toast.LENGTH_SHORT); refreshBanks(); dialog.dismiss(); } });
etBankName
devolvía valor nulo, pero luego usé dialog.findviewbyid(R.id.etBankName)
y funcionó.
- Android: aplicación que carga la biblioteca en tiempo de ejecución en Lollipop pero no IceCreamSandwich
- Android studio no puede conectarse a dispositivos de depuración