Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在Android下的警报中显示自定义异常?_Android_User Interface_Exception_Alert - Fatal编程技术网

有没有办法在Android下的警报中显示自定义异常?

有没有办法在Android下的警报中显示自定义异常?,android,user-interface,exception,alert,Android,User Interface,Exception,Alert,我是一名Android开发新手。 我想知道是否有一种方法可以监听Android中的自定义异常并使用警报显示其文本。谢谢。只需捕获所需的异常,然后创建一个包含异常内容的新AlertDialog import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; public class HelloException extends Activity { public class My

我是一名Android开发新手。
我想知道是否有一种方法可以监听Android中的自定义异常并使用警报显示其文本。谢谢。

只需捕获所需的异常,然后创建一个包含异常内容的新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.");
    }
}

只是为了让其他用户知道: 如果您希望在任何地方(模型、控制器等)以及视图中使用一个单独的自定义异常,请在任何地方传播该自定义异常,并在异常中定义的方法中添加Trevor的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(上下文)。要在活动中显示警报,只需使用:

try {
    // ...
} catch (PomodroidException e) {
    e.alertUser(this);
}
很容易重载自定义AlertDialog某些部分的方法,如标题和按钮文本

希望这对别人有帮助