Soy un desarrollador de Android novato. Me gustaría saber si existe una forma de escuchar una excepción personalizada en Android y mostrar su texto usando una alerta. Gracias.¿Hay alguna manera de mostrar una excepción personalizada en una alerta en Android?
6
A
Respuesta
11
Simplemente capture la excepción deseada, luego cree un nuevo AlertDialog que contenga el contenido de la excepción.
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
public class HelloException extends Activity {
public class MyException extends Exception {
private static final long serialVersionUID = 467370249776948948L;
MyException(String message) {
super(message);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onResume() {
super.onResume();
try {
doSomething();
} catch (MyException e) {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("MyException Occured");
dialog.setMessage(e.getMessage());
dialog.setNeutralButton("Cool", null);
dialog.create().show();
}
}
private void doSomething() throws MyException {
throw new MyException("Hello world.");
}
}
3
Sólo por dejar que los demás usuarios sepan: Si usted tiene una excepción personalizada separados que desea utilizar en todas partes (modelos, controladores, etc.), y también en sus puntos de vista, propagar la excepción personalizada en todas partes y añadir un código AlertDialog de Trevor en un método definido en su excepción, pasándole el contexto:
package it.unibz.pomodroid.exceptions;
import android.app.AlertDialog;
import android.content.Context;
public class PomodroidException extends Exception{
/**
*
*/
private static final long serialVersionUID = 1L;
// Default constructor
// initializes custom exception variable to none
public PomodroidException() {
// call superclass constructor
super();
}
// Custom Exception Constructor
public PomodroidException(String message) {
// Call super class constructor
super(message);
}
public void alertUser(Context context){
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle("WARNING");
dialog.setMessage(this.toString());
dialog.setNeutralButton("Ok", null);
dialog.create().show();
}
}
en mi fragmento, el método es alertUser (contexto contexto). Para mostrar la alerta en una actividad, basta con utilizar:
try {
// ...
} catch (PomodroidException e) {
e.alertUser(this);
}
Es muy fácil de sobrecargar el método de personalizar algunas partes del AlertDialog como su título y el texto del botón.
Espero que esto ayude a alguien.
Cuestiones relacionadas
- 1. Android: ¿Hay alguna manera de mostrar DialogPreference desde el código?
- 2. ¿Hay alguna manera de simular un clic en una alerta en JavaScript?
- 3. ¿Hay alguna manera de mostrar una lista de macros similar a mostrar sus asignaciones en Vim?
- 4. ¿Hay alguna manera de mostrar iconos en QListView sin texto?
- 5. ¿Hay alguna manera de anular automáticamente ToString() en una clase?
- 6. ¿Hay alguna manera de desactivar una etiqueta?
- 7. ¿Hay alguna manera de pausar una CABasicAnimation?
- 8. ¿Hay alguna manera de volcar un seguimiento de pila sin lanzar una excepción en java?
- 9. ¿Hay alguna manera de "limpiar" una superficie?
- 10. ¿hay alguna manera de forzar una reversión transaccional sin encontrar una excepción?
- 11. ¿hay una buena manera de mostrar demasiada información en ASP.NET?
- 12. ¿Hay alguna manera de animar diseños? [Android]?
- 13. ¿Hay alguna manera de imprimir en la consola en una aplicación de Android?
- 14. ¿hay alguna manera de averiguar de dónde viene una rama?
- 15. ¿Hay alguna manera de detectar lectores abiertos en una SqlConnection?
- 16. ¿Hay alguna manera de revertir una cripta() en c?
- 17. ¿Hay alguna manera de "extender" una clase en SASS?
- 18. ¿Hay alguna manera de hacer una verificación parcial en TFS?
- 19. ¿Hay alguna manera de precompilar una expresión regular en Perl?
- 20. ¿Hay alguna manera de hacer una función atómica en C? .
- 21. En IDA Pro, ¿hay alguna manera de marcar una función?
- 22. ¿Hay alguna manera de eliminar una rama en heroku?
- 23. ¿Hay alguna manera fácil de adjuntar una fuente en Eclipse?
- 24. ¿Hay alguna manera de bloquear una rama en GIT
- 25. ¿Hay alguna manera de alias/anclar una matriz en YAML?
- 26. ¿Hay alguna manera de dibujar gráficos y tablas en Android?
- 27. Lanzar una excepción personalizada de un servicio a una actividad
- 28. ¿Hay alguna manera de cargar un contexto de aplicación utilizando una implementación personalizada de BeanWrapper?
- 29. ¿Hay alguna forma de descartar una vista de alerta automáticamente después de un tiempo?
- 30. ¿Cómo centrar una vista personalizada en Android?
Gracias, esto resolvió mi problema. – dgraziotin