Существует ли способ отобразить пользовательское исключение на предупреждении под Android?

Я - новичок разработчик Android. Я хотел бы знать, существует ли там способ прислушаться к пользовательскому исключению в Android и отобразить его текст с помощью предупреждения.Спасибо.

6
задан dgraziotin 22 December 2009 в 18:20
поделиться

2 ответа

Просто поймайте нужное исключение, затем создайте новый диалог AlertDialog, содержащий содержимое исключения.

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.");
    }
}
11
ответ дан 8 December 2019 в 17:22
поделиться

Просто для того, чтобы дать знать другим пользователям: Если у вас есть отдельное пользовательское исключение, которое вы хотите использовать везде (модели, контроллеры и т.д.), а также в ваших представлениях, распространяйте пользовательское исключение везде и добавляйте код Trevor's AlertDialog в метод, определенный в вашем исключении, передавая ему контекст:

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();
    }

}

В моем фрагменте, методом является alertUser(Контекстный контекст). Чтобы отобразить Alert в действии, просто используйте:

try {
    // ...
} catch (PomodroidException e) {
    e.alertUser(this);
}

Очень легко перегрузить метод, чтобы настроить некоторые части AlertDialog, такие как его заголовок и текст кнопки.

Надеюсь, это кому-нибудь поможет.

3
ответ дан 8 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: