2010-10-19 4 views
10

Me gustaría pedirle al usuario que me brinde información en mi aplicación de Android utilizando un cuadro de diálogo. esto es lo que he encontrado:solicitud del usuario de la aplicación de Android mediante un cuadro de diálogo

AlertDialog.Builder alert = new AlertDialog.Builder(this); 

alert.setTitle("Title"); 
alert.setMessage("Message"); 

// Set an EditText view to get user input 
final EditText input = new EditText(this); 
alert.setView(input); 

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int whichButton) { 
String value = input.getText(); 
// Do something with value! 
} 
}); 

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int whichButton) { 
    // Canceled. 
} 
}); 

alert.show(); 

pero esto me da :

android.view.WindowManager $ BadTokenException: No se puede agregar ventana - nula ficha no es para una aplicación

es Hay algún problema en mi código, parece que se pasa un argumento nulo en el diálogo, pero no puedo averiguar cuál es el problema.

+1

'valor String = input.getText() toString();.' – Fred

Respuesta

8

Cuando ejecuté su código en un nuevo proyecto, funcionó bien. Así que, probablemente, "esto" que está utilizando

  • no es una actividad
  • no es la actividad a la vista, es decir que puede haber una actividad padre. Si es hijo de alguna actividad, use getParent() en lugar de "this".
  • es nulo

Espero que esto ayude.

3

He escrito una clase de ayuda que hace que sea fácil crear un cuadro de diálogo rápido con solo unas pocas líneas de código.

PromptDialog dlg = new PromptDialog(MainActivity.this, R.string.title, R.string.enter_comment) { 
@Override 
public boolean onOkClicked(String input) { 
    // do something 
    return true; // true = close dialog 
} 
}; 
dlg.show(); 

See full code => Prompt Dialog for Android

Cuestiones relacionadas