Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: no se puede obtener valor de EditText dentro de Custom Dialog

No he tenido éxito al obtener la entrada de mi objeto EditText dentro de mi cuadro de diálogo personalizado.

public class SetCityDialog extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LayoutInflater factory = LayoutInflater.from(MainActivity.this); final View view = factory.inflate(R.layout.city_dialog, null); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getActivity().getLayoutInflater(); builder.setView(inflater.inflate(R.layout.city_dialog, null)) // Add action buttons .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { //This is the input I can't get text from EditText inputTemp = (EditText) view.findViewById(R.id.search_input_text); //query is of the String type query = inputTemp.getText().toString(); newQuery(); getJSON newData = new getJSON(); newData.execute("Test"); } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { SetCityDialog.this.getDialog().cancel(); } }); return builder.create(); } } 

No obtengo ninguna excepción, pero la consulta variable se establece en una cadena vacía. Cualquier ayuda sería fantástica.

  • La relación entre las funciones "onBodyLoad () / onDeviceReady ()" de Phonegap y las funciones "$ (document) .ready ()" de JQuery,
  • ¿Cómo puedo comprobar la versión del sistema de Android?
  • Autenticación con OAuth2 para una aplicación * y * un sitio web
  • Android - Diálogo personalizado - No se puede obtener texto de EditText
  • ¿Cómo probar el rendimiento de una aplicación de Android?
  • Android Gradle: cambia dinámicamente versionName en tiempo de compilación
  • Textview.getLineCount siempre 0 en android
  • Mantener la actividad activada cuando la pantalla está apagada
  • La consulta MMS sólo devuelve el tamaño del mensaje de los archivos adjuntos enviados
  • ¿Cuál es el uso de List <NameValuePair> o ArrayList <NameValuePair>
  • Deslice ListView de lado como en la nueva aplicación de GMail
  • ¿Cuál es la diferencia entre DVM y JVM?
  • 4 Solutions collect form web for “Android: no se puede obtener valor de EditText dentro de Custom Dialog”

    Yo estaba tratando de hacer lo mismo y obtener el mismo error. No sé porqué. Ya utilizo AlertDialog.Builder en el pasado y no tengo problemas. Pero en su caso, cambie este código:

     public void onClick(DialogInterface dialog, int id) { //This is the input I can't get text from EditText inputTemp = (EditText) view.findViewById(R.id.search_input_text); //query is of the String type query = inputTemp.getText().toString(); newQuery(); getJSON newData = new getJSON(); newData.execute("Test"); } 

    Por este:

     public void onClick(DialogInterface dialog, int id) { Dialog f = (Dialog) dialog; //This is the input I can't get text from EditText inputTemp = (EditText) f.findViewById(R.id.search_input_text); query = inputTemp.getText().toString(); ... } 

    Esta solución funciona para mí y parece ser lo mismo para usted. Encontrado en stackoverflow

    Use esto en su lugar:

     View myLayout = nflater.inflate(R.layout.city_dialog, null); EditText myEditText = (EditText) myLayout.findViewById(R.id.myEditText); String valueOfEditText = myEditText.getText().toString(); 

    No hace falta hacer mucha codificación. Solo cambia

      builder.setView(inflater.inflate(R.layout.city_dialog, null)) 

    a

      builder.setView(view) 

    Y acceder al texto de EditText utilizando ** view.findView …..

      EditText inputTemp = (EditText) view.findViewById(R.id.search_input_text); String xyz = inputTemp.getText().toString(); 
     This is worked for me: // if button is clicked, close the custom dialog dialogButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { Dialog inDialog = (Dialog) dialog; EditText emailAddress = (EditText) inDialog.findViewById(R.id.emailAddress); email = emailAddress.getText().toString(); if(email.length() == 0) { objPublicDelegate.showToast("Please fill Email Address."); }else{ objLoadingDialog.show("Please wait..."); // Call a network thread Async task mNetworkMaster.runForgetAsync(email); } } catch (Exception e) { e.printStackTrace(); } } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.