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.
Problemi correlati
- 1. Esiste un modo per visualizzare i file distribuiti in Azure?
- 2. Come visualizzare un avviso in Bootstrap modale
- 3. Esiste un modo per visualizzare un elenco di macro simile alla visualizzazione dei mapping in Vim?
- 4. Esiste un modo semplice per randomizzare un elenco in VB.NET?
- 5. Visual Studio: esiste un modo per generare un avviso se non si verifica un valore restituito?
- 6. Come visualizzare un avviso MySQL appena accaduto?
- 7. Un modo più elegante per visualizzare null?
- 8. Un modo per "visualizzare" un thunk/funzione? O come visualizzare una funzione per un argomento generale
- 9. Come visualizzare in anteprima caratteri personalizzata Android Studio (usando Calligrafia)
- 10. C'è un modo per visualizzare l'anteprima di un vettore disegnabile
- 11. Esiste un modo elegante per elaborare un flusso in blocchi?
- 12. Esiste un modo per riutilizzare un flusso in java 8?
- 13. Esiste un modo semplice per scrivere una funzione personalizzata in LINQ su Entità?
- 14. Annotazione personalizzata per sopprimere un avviso specifico FindBugs
- 15. Esiste un comando in R per visualizzare tutte le funzioni presenti in un pacchetto?
- 16. Esiste un modo per eseguire Trac offline?
- 17. Esiste un modo per forzare Checkstyle a ignorare un particolare avviso nel codice sorgente?
- 18. Esiste un modo per "riscaldare" un processo?
- 19. Esiste un modo per visualizzare visivamente una vista in un diagramma di database in SQL Server 2008?
- 20. Esiste un modo per utilizzare l'espresso con Lollipop (Android 21)?
- 21. Esiste un modo per caricare un contesto applicativo utilizzando un'implementazione personalizzata di BeanWrapper
- 22. Esiste un motivo tecnico per non utilizzare un TWebBrowser in Delphi per visualizzare Google Earth?
- 23. Android UnknownHostException: esiste un modo per impostare il timeout?
- 24. Come generare un avviso R in modo sicuro in Rcpp
- 25. Esiste un modo più sicuro per archiviare le stringhe sensibili in un progetto Android?
- 26. Esiste un modo per visualizzare a capo i risultati di un cmdlet di PowerShell?
- 27. Android: pulsante per visualizzare
- 28. Esiste un modo per attendere in modo asincrono un futuro in Boost Asio?
- 29. C'è un modo per ignorare un singolo avviso di FindBugs?
- 30. Come visualizzare un avviso non bloccante per il sistema operativo in Wix?
Grazie, questo ha risolto il mio problema. – dgraziotin