我是一名新手 Android 开发人员。我想知道是否存在一种方法可以在 Android 中侦听自定义异常并使用警报显示其文本。谢谢你。
user237076
问问题
7362 次
2 回答
11
只需捕获所需的异常,然后创建一个包含异常内容的新 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.");
}
}
于 2009-12-22T19:02:25.453 回答
3
只是为了让其他用户知道:如果您有一个单独的自定义异常,您希望在任何地方(模型、控制器等)以及在您的视图中使用,请将自定义异常传播到任何地方,并在定义的方法中添加 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(Context context)。要在 Activity 中显示警报,只需使用:
try {
// ...
} catch (PomodroidException e) {
e.alertUser(this);
}
很容易重载该方法来自定义 AlertDialog 的某些部分,例如它的标题和按钮的文本。
希望这可以帮助某人。
于 2009-12-28T16:42:51.393 回答