首页 > 解决方案 > 将文本编辑为长变量问题?

问题描述

我正在开发一个计时器应用程序,我有一个 EditText 用于获取输入数字,并根据我选择的单选按钮,将输入乘以等于 CountDownTimer 类的 long millisInFuture。但显然将我的 EditText 解析为 long 有问题。这是 RadioGroup 的部分:

        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {

            if (checkedId == rdSeconds.getId()) {
                et_num.setHint("Seconds");
                String value = et_num.getText().toString();
                //selectedOption is a long variable
                selectedOption = Long.parseLong(value) * 1000;
            } else {
                et_num.setHint("Minutes");
                String value = et_num.getText().toString(); 
                selectedOption = Long.parseLong(value) * 60000; //line 102
            }


        }
    });

这是它给我的错误的一部分?

java.lang.NumberFormatException: For input string: ""
    at java.lang.Long.parseLong(Long.java:455)
    at java.lang.Long.parseLong(Long.java:485)
    at com.example.timemachine.MainActivity$2.onCheckedChanged(MainActivity.java:102)

标签: javaandroid

解决方案


在长解析之前检查您的 editText 是否具有正确的值

            String value = et_num.getText().toString();

             if(value != null && !value.isEmpty())
             { 
             selectedOption = Long.parseLong(value) * 1000;
             }

推荐阅读