我是一名新手Android开发人员。 我想知道是否存在一种方法来侦听Android中的自定义异常并使用警报显示其文本。谢谢。有没有办法在Android下的警报中显示自定义异常?
6
A
回答
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.");
}
}
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(上下文的背景下)。要在活动中显示警报,只需使用:
try {
// ...
} catch (PomodroidException e) {
e.alertUser(this);
}
这很容易超载定制AlertDialog的一些部件,如它的标题和按钮上的文字的方法。
希望这可以帮助别人。
相关问题
- 1. 有没有办法自定义系统警报?
- 2. 自定义警报内的警报在android中显示错误?
- 3. 的Javascript:警报( '...') - 错误:未捕获的异常:没有定义警报
- 4. 有没有办法知道自定义通知即将显示?
- 5. 有没有办法在android中创建自定义应答机?
- 6. 有没有办法在Java中显示类似于TrayIcon.displayMessage()的自定义表单?
- 7. 有没有办法自定义JLabel?
- 8. 有没有办法自定义Sharekit?
- 9. 我的警报大小在android中没有正确显示?
- 10. 有没有办法在PLSQL包中处理全局定义的异常
- 11. 有没有办法在表格视图中计算警报?
- 12. 有没有办法在JavaScript中模拟点击警报?
- 13. 警报显示在JavaScript中未定义
- 14. Android有没有办法在adb中显示进程优先级?
- 15. 有没有办法让NSUInteger在iPhone中自动显示逗号?
- 16. 有没有办法定义WPF自定义绑定?
- 17. 在Android中显示自定义AlertDialog,同时捕获异常
- 18. JQuery Ajax没有显示成功警报
- 19. 安卓:警报dialoge没有显示
- 20. Uploadify警报上传没有显示后
- 21. ibeacons通知警报没有显示
- 22. 有没有办法在LESS中编写自定义选择器?
- 23. 有没有办法在`jQuery`自定义`trigger`中设置'CallBack'?
- 24. 有没有办法在python中自动定义一个函数?
- 25. 有没有办法在WCF中进行自定义序列化?
- 26. 有没有办法在Kivy中创建自定义属性?
- 27. 有没有办法在Visual Studio中自动#定义头文件?
- 28. 有什么办法摆脱在IE9中不常见的下载警报?
- 29. 在swift中显示自定义单元格的警报3
- 30. 有没有办法让一个显示在自己的行上?
谢谢,这解决了我的问题。 – dgraziotin 2009-12-22 19:48:44