有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java应用程序在尝试验证空字段时崩溃,错误为“无法执行安卓:onClick的方法”

我试图创建空字段验证,如果用户不输入任何字符串/整数,只需按下按钮,他将收到弹出窗口,说明该字段为空

我将感谢任何帮助

见下面我的代码:

...

    public void clickCheck (View view) {
        EditText editText = (EditText) findViewById(R.id.userType);
        Integer userNum = Integer.parseInt(editText.getText().toString());
        String userField = editText.getText().toString().trim();
        String message = "";


        if (userField.isEmpty()) {
            message = "please input something!!!!!";
        } else {
            Shape mynumber = new Shape();
            mynumber.number = userNum;
            if ((mynumber.isSquareNum() == true) && (mynumber.isTriangularNum() == false)) {

                makeToast("The number " + userNum + " is a Square number.");
            } else if ((mynumber.isSquareNum() == false) && (mynumber.isTriangularNum() == true)) {
                makeToast("The number " + userNum + " is a Triangular number.");
            } else if ((mynumber.isSquareNum() == false) && (mynumber.isTriangularNum() == false)) {
                makeToast("The number " + userNum + " is a not Square or Triangular shape");
            } else if ((mynumber.isSquareNum() == true) && (mynumber.isTriangularNum() == true)) {
                makeToast("The number " + userNum + " is both Square & Triangular shapes");
            }

        }
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

共 (2) 个答案

  1. # 1 楼答案

    谢谢@Hakob你的建议很有效。 事后我的问题是因为我的Toast命令没有正确定义

    所以我有这样一条消息:“请输入一些东西!”

    我改为:makeToast(“请输入一些东西!!!”)

    实际上,我根本没有定义Toast命令,所以应用程序不理解它应该弹出一条消息:)

    再次感谢你的帮助

  2. # 2 楼答案

    这个问题与

    Integer userNum = Integer.parseInt(editText.getText().toString());
    

    它可能会抛出NumberFormatException,直到验证后才能到达

    你可以这样试试

        public void clickCheck (View view) {
            EditText editText = (EditText) findViewById(R.id.userType);
            String userField = editText.getText().toString().trim();
            String message = "";
            if (userField.isEmpty()) {
                message = "please input something!!!!!";
            } else {
                Shape mynumber = new Shape();
                Integer userNum;
                try {
                    userNum = Integer.parseInt(editText.getText().toString());
                }catch (NumberFormatException ex) {
                    message = "Not an integer";
                }
                mynumber.number = userNum;
                ...
            }
        }