尝试抓住没有警报框的android

时间:2011-06-24 16:49:29

标签: android exception try-catch

我正在尝试在我的应用中显示一个警告框,当数字格式异常发生但由于某种原因应用程序崩溃

add.setOnClickListener(new View.OnClickListener(){

        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            try {

                preRes = new Double(field1.getText().toString());
                lastCommand = "+";
                field1.setText("");
                count = 0;

            } catch (NumberFormatException e) {    


                show = new AlertDialog.Builder(mContext)
                .setTitle("Error")
                .setMessage("no inputs").setPositiveButton("OK", null).show();

            }

        }
    });

4 个答案:

答案 0 :(得分:0)

创建AlertDialog.Builder

后,您错过了关注
AlertDialog alert = show .create();
 alert.show();

答案 1 :(得分:0)

如果您获得空指针,请尝试使用new AlertDialog.Builder(getContext())..new AlertDialog.Builder(this)..。您可能错过了初始化mContext字段。

如果不起作用,请尝试

show = new AlertDialog.Builder(mContext)
            .setTitle("Error")
            .setMessage("no inputs").setPositiveButton("OK", 
new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        captureImage();
    }
}
).show();

答案 2 :(得分:0)

可能会抛出NumberFormatException以外的未经检查的异常,例如NullPointerException

如果field1mContext未正确初始化,则可能会抛出NPE。

无论如何,你需要让logcat工作,这样你才能调试问题。堆栈跟踪将指向错误发生的位置。

要在Eclipse中打开logcat,请转到Window>显示视图>其他......并选择logcat视图。

或者,您可以从Window>访问logcat视图。 Open Perspective>其他......并选择DDMS视角。

答案 3 :(得分:0)

我相信你必须先创建Builder才能开始设置属性。尝试这样的事情(假设show是一个AlertDialog):

show = new AlertDialog.Builder(mContext).create();
show.setTitle("Error")
  .setMessage("no inputs")
  .setPositiveButton("OK", null)
  .show();