Sono uno sviluppatore Android newbie. Vorrei sapere se esiste un modo per ascoltare un'eccezione personalizzata in Android e visualizzarne il testo utilizzando un avviso. Grazie.Esiste un modo per visualizzare un'eccezione personalizzata in un avviso in Android?
6
A
risposta
11
Basta catturare l'eccezione desiderata, quindi creare una nuova AlertDialog contenente il contenuto dell'eccezione.
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
Proprio per lasciare altri utenti sanno: Se hai un'eccezione personalizzato separato che si desidera utilizzare ovunque (modelli, controller, ecc), e anche nel vostro punto di vista, propagare l'eccezione personalizzata ovunque e aggiungere il codice AlertDialog Trevor in un metodo definito nella vostra eccezione, passandogli il contesto:
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();
}
}
a mio frammento, il metodo è alertUser (context contesto). Per visualizzare l'avviso in un'attività, utilizzare semplicemente:
try {
// ...
} catch (PomodroidException e) {
e.alertUser(this);
}
è molto facile sovraccaricare il metodo per personalizzare alcune parti del AlertDialog come il suo titolo e il testo del pulsante.
Spero che questo aiuti qualcuno.
Grazie, questo ha risolto il mio problema. – dgraziotin