Gibt es eine Möglichkeit, eine benutzerdefinierte Ausnahme in einer Ausschreibung unter Android angezeigt werden?
-
21-09-2019 - |
Frage
Ich bin ein Neuling Android-Entwickler. Ich möchte wissen, ob es einen Weg gibt für eine benutzerdefinierte Ausnahme in Android zu hören und seinen Text eine Warnung, verwendet wird. Danke.
Lösung
Sie einfach die gewünschte Ausnahme abfangen, dann erstellen Sie einen neuen Alertdialog den Inhalt der Ausnahme enthält.
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.");
}
}
Andere Tipps
Nur für die Vermietung andere Nutzer wissen: Wenn Sie eine getrennte benutzerdefinierte Ausnahme haben, dass Sie überall verwenden möchten (Modelle, Controller usw.) und auch in Ihre Ansichten, propagieren die benutzerdefinierte Ausnahme überall und fügen Trevors Alertdialog-Code in einer Methode in Ihrer Ausnahme definiert, den Übergang Kontext:
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();
}
}
In meinem Code-Schnipsel, die Methode ist alertUser (Context Kontext). Um den Alarm in einer Aktivität angezeigt werden, verwenden Sie einfach:
try {
// ...
} catch (PomodroidException e) {
e.alertUser(this);
}
Es ist sehr einfach, die Methode zu überlasten einige Teile des Alertdialog wie den Titel und den Text der Schaltfläche anpassen.
Hope, das hilft jemand.