将 EditText 设置为带有整数的货币

2024-06-19

全部- 我有一个TextWatcher格式化一个EditText货币格式:

private String current = "";
public void onTextChanged(CharSequence s, int start, int before, int count) {
    if(!s.toString().equals(current)){
        editText$.removeTextChangedListener(this);

       String cleanString = s.toString().replaceAll("[$,.]", "");

       double parsed = Double.parseDouble(cleanString);           
       String formated = NumberFormat.getCurrencyInstance().format((parsed/100));          

       current = formated;
       editText$.setText(formated);
       editText$.setSelection(formated.length());

       editText$.addTextChangedListener(this);
    }
}

这很好用,问题是我的EditText只需要整数,因此用户无法输入美分。因此,我想要的不是 0.01 比 0.12 比 1.23 比 12.34,而是 1 比 12 比 123 比 1,234。如何去掉小数点但保留逗号?谢谢。


如果您不介意删除句点和尾随零,您可以这样做:

    mEditText.addTextChangedListener(new TextWatcher() {
        private String current = "";

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (!s.toString().equals(current)) {
                annualIncomeEntry.removeTextChangedListener(this);

                String cleanString = s.toString().replaceAll("[$,]", "");

                if (cleanString.length() > 0) {
                    double parsed = Double.parseDouble(cleanString);
                    NumberFormat formatter = NumberFormat.getCurrencyInstance();
                    formatter.setMaximumFractionDigits(0);
                    current = formatter.format(parsed);
                } else {
                    current = cleanString;
                }


                annualIncomeEntry.setText(current);
                annualIncomeEntry.setSelection(current.length());
                annualIncomeEntry.addTextChangedListener(this);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
    });

这会将数字格式化程序的最大小数位设置为零,删除所有尾随零和句点。我还删除了除以 100 的操作,以便所有输入的数字都是整数。

还要确保您的 EditText 的 inputType 为“数字”,否则如果用户尝试输入非数字字符,则会崩溃。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 EditText 设置为带有整数的货币 的相关文章

  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 如何使用 Selenium 中的索引切换到窗口

    由于selenium不提供切换到窗口 多个窗口 的方法 但我想使用index html自定义方法来切换到不同的窗口 但下面的代码没有按预期工作 请建议以下方法的最佳实施 public void switchToWindowIndex int
  • vm 参数中的 -D 是什么,它表示为什么我们必须在 vm 参数中始终指定 -D

    vm 参数中的 D 是什么 它表示为什么我们必须在 vm 参数中始终指定 D 有什么标准吗 如果是 那是什么以及指定的位置 D 设置当前运行的 java 程序可以访问的属性值 它允许程序员设置程序运行所需的值 但程序不知道这些值是什么 因此
  • 如何在Room的数据库迁移中正确添加索引?

    我在迁移 Room 数据库时遇到问题 在更新的数据库中 我必须将一个字段从整数更改为双精度值 我读到它并不像听起来那么容易 为了做到这一点 我必须使用这个更改后的属性创建新的临时表 复制前一个表中的所有值 删除旧的值 最后重命名临时表 我的
  • java中日期转换dd-MMM-yyyy到dd-MM-yyyy

    在Java中将23 Mar 2011转换为23 03 2011的最简单方法是什么 感谢大家 这似乎解决了这个问题 try Calendar cal Calendar getInstance cal setTime new SimpleDat
  • 使用 Box2d(适用于 Android)进行碰撞检测?

    有人可以解释一下使用 box2d for android 进行碰撞检测的工作原理吗 我无法理解 BBContactListener 以什么方式工作 BBContactListener listener new BBContactListen
  • “___ 中的方法 ___() 是在无法访问的类或接口中定义的”编译错误

    我发现了一个奇怪的编译限制 我无法解释 并且我不明白这个限制的原因 示例1 考虑这些类 In package e1 public class C1 enum E1 A B C public E1 x In package e2 import
  • Java LRU 缓存使用 LinkedList

    堆栈溢出的新手 所以请不要介意我以菜鸟的方式问这个问题 我正在尝试使用链表实现 LRU 缓存 我在这里看到了使用 linkedHashMap 和其他数据结构的其他实现 但对于这种情况 我正在尝试使用链表创建最佳优化版本 正如我在技术期间被问
  • 春季MVC。方法参数字段的默认值

    我有一个带有方法测试的简单控制器 RequestMapping produces application json ResponseBody public HttpEntity
  • Android:从 PhoneGap 应用打开 Play 商店链接

    我想从我的phonegap 3 4 应用程序打开一个指向Google Play 商店的链接 呼唤market details id com google android apps maps导致 ActivityNotFoundExcepti
  • 如何列出hadoop hdfs中目录及其子目录中的所有文件

    我在 hdfs 中有一个文件夹 其中有两个子文件夹 每个子文件夹大约有 30 个子文件夹 最后 每个子文件夹都包含 xml 文件 我想列出所有 xml 文件 仅给出主文件夹的路径 在本地我可以这样做apache commons io 的 h
  • Grade Plugin 3-alpha1 输出文件导致错误

    我正在尝试将项目更新到 Android Studio 3 build gradle 文件中不再接受以下代码片段 applicationVariants all variant gt variant outputs each out gt d
  • Java 验证日期为 yyyyMMddHHmmss

    我想在java中验证给定的日期格式为yyyyMMddHHmmss 状况 应符合格式 yyyyMMddHHmmss 它应该验证当前日期 它应该验证与当前小时有 3 小时或 3 小时差异的小时数 如果满足所有三个条件 Java 方法应返回 tr
  • Struts2中的变量声明

    Struts2中如何声明变量并为该变量赋值 使用设置标签
  • 在 VideoView 开始播放之前,TextView 不会显示

    我编写了一个android应用程序 它有两个视图 TextView上方的VideoView 位于ScrollView内部 我遇到了一个问题 直到VideoView开始播放视频 TextView才显示 并且我有一个黑屏 这可能需要很长一段时间
  • 片段中的 SavedInstanceState 始终为 null

    我使用 XML 以及活动中的 setContentView 将片段附加到活动 A 有一个问题 因为我的片段中有非常动态的视图 所以当方向改变时 我必须恢复所有的观点状态 我有问题 因为我正在使用类似的东西 public void onSav
  • 如何创建具有同等时间元素的 JavaFX 转换?

    我正在尝试 JavaFX 和动画 尤其是PathTransition 我正在创建一个简单的程序 使球 弹跳 而不使用QuadCurveTo班级 到目前为止 这是我的代码 Ellipse ball new Ellipse 375 250 10
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • 获取Java中ResultSet返回的行数

    我用过一个ResultSet返回一定数量的行 我的代码是这样的 ResultSet res getData if res next System out println No Data Found while res next code t
  • 使用 PDFBox 在 Android 中创建 PDF

    我正在尝试通过我的 Android 应用程序创建 PDFPDFBoxapi 但出现以下错误 java lang NoClassDefFoundError org apache pdfbox pdmodel PDDocument 我已经将以下

随机推荐

  • ASP.NET Core 2.1 中的 UseStaticFiles、UseSpaStaticFiles 和 UseSpa 之间有什么区别?

    ASP NET Core 2 1 1为appBuilder提供了几种看似相关的扩展方法 UseStaticFiles from Microsoft AspNetCore StaticFiles UseSpaStaticFiles from
  • 发布时出错:System.DirectoryServices.DirectoryServicesCOMException

    我在我的 asp net MVC 解决方案中使用 AD 身份验证 它在本地服务器中工作 但是当我发布它时 我收到错误 System DirectoryServices DirectoryServicesCOMException 发生操作错误
  • 从另一个弹出窗口打开弹出窗口

    我正在尝试使用 window open 方法从另一个弹出窗口打开一个弹出窗口 但它只是在前一个弹出窗口中打开第二个弹出窗口 我目前使用的代码 win window open Window child top 250 left 310 Wid
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • 将复杂对象传递到 WCF Rest 服务

    我有一个接受复杂对象的操作合约 并且我通过 jQuery 调用该操作 如何使用 jQuery 传递像这样的复杂类型对象 以下是操作签名 public Resolution CreateNewResolution Resolution New
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • iOS 4.0 contentScaleFactor 和比例 - 在 3.1.3 中如何处理?

    我的任务是制作一个在 iOS 4 0 中运行的应用程序再次在 3 1 3 和 3 2 中运行 大多数情况下 它很简单 但处理新 API 的扩展和其他必须传递 返回值的情况很困难 respondsToSelector performSelec
  • 为什么 XUnit 插件不能与 Jenkins 一起使用?

    我从 jenkins 启动了测试 IDE selenium 并上传了 XUNIT 插件以获得一份不错的测试报告 但最后我收到了这条 ERROR 消息 测试失败 请参阅结果文件了解详细信息 D FTP stm atos automatisat
  • 使用 Gorilla 会话自定义后端有什么优势?

    我想使用 Redis 进行会话管理 但我不明白使用 Redis 作为 Gorilla 会话包的自定义后端比直接使用它有什么优势 Gorilla 会话包的链接 http www gorillatoolkit org pkg sessions
  • Github 操作错误地认为变量是秘密,因此不设置输出

    我的工作流程文件中的一个步骤将返回我的 aws 账户中 EC2 实例的一些 ID 然后我将这些 ID 设置为 github 输出 以便在我的工作流程文件中的其他作业中使用 我在许多工作流程中都这样做了 步骤将返回如下内容 i 0d945b0
  • 部署架构问题

    我也已将应用程序名称和命名空间从 FooXXX 更改为 FooYYY VS 将更改应用于所有文件 我已经检查了所有命名空间 名称等 项目编译 但是当我想将其部署到模拟器或设备时 它会立即崩溃 没有战争 没有消息 没有例外 仅显示启动屏幕 然
  • 连接到 Facebook 并使用 api

    有没有好的教程如何制作简单的控制台 Facebook 应用程序 连接到 Facebook 并获取朋友列表 用户照片 状态或其他内容 我查看了 facebook SDK 的 facebook 示例 但如果我想在 facebook 上授权 我必
  • 如何在OpenGL ES中显示yuv格式的数据而不转换rgb?

    我一直在研究 iOS 的 OpenGL ES 我想知道YUV格式的数据是否可以在不转换RGB的情况下显示 大多数情况下 yuv 数据必须转换为 RGB 才能显示 但是 转换过程非常慢 然后 显示不流畅 所以 我想尝试在不转换为RGB的情况下
  • Apache Tika 能够提取中文、日语等外语吗?

    Apache Tika 能够提取中文 日语等外语吗 我有以下代码 Detector detector new DefaultDetector Parser parser new AutoDetectParser detector Input
  • 删除 WebView Android 中不需要的空白

    我已经开始使用 WebView 开发应用程序 实际上我正在使用 Webview 加载图像 我喜欢使用该类的内置缩放控件 我可以成功加载图像 但我可以看到一些令人恼火的空白 我找不到删除它的方法 我的图像尺寸为 750 1000 我在下面附上
  • Java CRC32:与 C# 中的 CRC 不同

    我必须将文件与 java 和 C 脚本提供的 CRC32 代码进行比较 当我用 java util zip CRC32 计算 CRC32 时 结果完全不同 我的猜测是 C 脚本的多项式 0x2033 与 zip CRC32 中使用的不一样
  • 在 Scala 中调用 WebSocket 中的方法

    我是 scala Play 框架和 Akka 的新手 我的函数定义为 def socket WebSocket accept String String request gt ActorFlow actorRef out gt MyWebS
  • 从后台恢复后,Flutter GoogleMap 为空白

    我遇到以下问题 我的 Flutter 应用程序使用 GoogleMap 地图最初加载得很好 但是 如果我将应用程序置于后台并稍后恢复 地图将保持空白 Google 徽标仍然显示 就像未指定 API 密钥时发生的情况一样 我的多边形叠加层也不
  • 从嵌套列表创建数组时抑制 Numpy 中的科学记数法

    我有一个嵌套的 Python 列表 如下所示 my list 3 74 5162 13683628846 64 12783387559 86 1 81 9 55 116 189688622 37 260332262 0 1 97 2 2 7
  • 将 EditText 设置为带有整数的货币

    全部 我有一个TextWatcher格式化一个EditText货币格式 private String current public void onTextChanged CharSequence s int start int before