当前位置: 首页 > 知识库问答 >
问题:

从android中的自定义零按钮中删除edittext中的前导零

高玮
2023-03-14

我使用了AddTextChangedListener(new TextWatcher()来删除前导零,但它只在android软键盘NumPad中工作,而不是我自定义的NumPadN0是零按钮。基本上,只要我按下零按钮,我的应用程序就会崩溃。


    //custom zero button
            n0.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                        input1.append("0");
                        operationA();
                }
            });    

我只需要零按钮在点击时不会返回任何值的代码,以避免前导零。下面是AddTextChangedListener(new TextWatcher()


    input1.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.toString().length() == 1 && s.toString().startsWith("0")) {
                    s.clear();
                }
            }
        });

获取以下错误:


    AndroidRuntime: FATAL EXCEPTION: main
        Process: context, PID: 12408
        java.lang.NumberFormatException: empty String
            at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1071)
            at java.lang.Double.valueOf(Double.java:511)
            at context.operationA(MainActivity.java:478)
            at context$17.onClick(MainActivity.java:383)
            at android.view.View.performClick(View.java:5610)
            at android.view.View$PerformClick.run(View.java:22265)
            at android.os.Handler.handleCallback(Handler.java:751)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:154)
            at android.app.ActivityThread.main(ActivityThread.java:6077)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)

共有1个答案

段曦
2023-03-14

operationA方法中尝试将字符串解析为double时出错,但字符串为空,请在转换前检查字符串是否为空

 类似资料:
  • 我想做的是将用户输入的任何高达2^32-1的数字转换为仅使用位运算符的二进制值。经过多次挠头和修补,我得出了这个结论,似乎给了我想要的...几乎: 现在我的问题是:这确实会输出正确的二进制字符串,但我需要删除前导零,以便十进制数10在二进制中显示为1010,而不是0000000000000000000000 1010。 我是第一学期的计算机科学专业的学生,所以任何关于解决问题的帮助或清理代码的提示

  • 我有一个带有EditText和按钮的活动。当用户单击EditText时,会显示键盘,他可以输入一些Text-很好。但是当用户单击按钮时,我希望EditText不再对焦,即键盘隐藏,直到用户再次单击EditText。 单击按钮后,如何“隐藏EditText的焦点”。我可以在按钮的OnClick方法中添加一些代码来实现这一点? 编辑: 顺致敬意,

  • > 标高,同时具有自定义可绘制。 在用户触摸的地方启动涟漪效果。

  • 本文向大家介绍Android 自定义EditText输入框带清空按钮,包括了Android 自定义EditText输入框带清空按钮的使用技巧和注意事项,需要的朋友参考一下 Android 自定义EditText输入框带清空按钮 当用户输入字符后 EditText会自动在输入框的内部右侧出现删除按钮 重写EditText达到简化布局的效果 效果图: 继承EditText XML布局: XML中的属性

  • 我做了以下练习: 做一个把任意数转换成二进制数的代码 反转二进制数并显示在屏幕上 计数(并在屏幕上显示)二进制数的开头有多少个零 去掉反转二进制数开头的所有零。 将新的二进制数转换回常规数,并在屏幕上显示该数。 目前我被困在第四步,有人能帮我吗?到目前为止,我有: 提前感谢:) 我已经得到了答案,第一个人已经帮了我很多。我还将学习并阅读其他答案。不要觉得有必要发布更多的回复(当然,除非你愿意):)

  • 我有一个TableView,它沿着一列生成按钮: 构建任务管理应用程序。我希望能够删除按钮所在的行,而不是按下相应按钮时选择的行。 My table类实现了EventHandler,因此按下TableView中的按钮时会运行handle()方法: 唯一缺少的是如何检测按下按钮的行,然后将其删除(因为所有按钮都运行相同的句柄方法)。非常感谢你的帮助。 为清晰起见,请将代码转储到此处:https://