Gibt es eine Möglichkeit, eine benutzerdefinierte Ausnahme in einer Ausschreibung unter Android angezeigt werden?

StackOverflow https://stackoverflow.com/questions/1948222

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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top