Android 如何设置 EditText 的最大“字数”限制

2024-01-20

如何在 Android 上设置最大字数限制EditText我知道如何设置字符限制,但我正在寻找字数限制.


您需要添加一个TextChangedListener给你的EditText然后应用一个InputFilter请参阅以下代码。

edDesc.addTextChangedListener(new TextWatcher() {

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

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        int wordsLength = countWords(s.toString());// words.length;
        // count == 0 means a new word is going to start
        if (count == 0 && wordsLength >= MAX_WORDS) {
            setCharLimit(edDesc, edDesc.getText().length());
        } else {
            removeFilter(edDesc);
        }

        tvWordCount.setText(String.valueOf(wordsLength) + "/" + MAX_WORDS);
        }

    @Override
    public void afterTextChanged(Editable s) {}
});

private int countWords(String s) {
    String trim = s.trim();
    if (trim.isEmpty())
        return 0;
    return trim.split("\\s+").length; // separate string around spaces
}

private InputFilter filter;

private void setCharLimit(EditText et, int max) {
    filter = new InputFilter.LengthFilter(max);
    et.setFilters(new InputFilter[] { filter });
}

private void removeFilter(EditText et) {
    if (filter != null) {
        et.setFilters(new InputFilter[0]);
        filter = null;
    }
}

您必须拦截粘贴事件,以便用户不能粘贴超出所需的单词。你可以拦截AndroidEditText粘贴事件[阅读更多] https://stackoverflow.com/a/14981376/185022

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

Android 如何设置 EditText 的最大“字数”限制 的相关文章

  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • div 中的文本字符有限,添加“阅读更多”链接并在单击链接时显示所有字符

    我有一个 div 里面有文本 使用 PHP 和 MySQL 显示 结构如下 div class description p Here is a lot of text p div 我想在 p 标签内的文本超过 100 个字符时显示 阅读更多
  • Android - 如何一次只允许播放一个 MediaPlayer 实例?

    我正在尝试创建一个简单的 Sound board Android 应用程序 使用 ListView 项目作为按钮 顺便说一句 我是一个新手程序员 我的想法是 我按下一个按钮 就会播放一个特定的声音文件 如果我在播放声音时按下任何按钮 它应该
  • Android 应用程序在后台运行时保存数据

    目前我正在开发 xmmp 客户端 当应用程序位于前台时 该客户端工作得很好 但由于事实上 当应用程序处于后台时 我在 Application 类中保存了大量数据 复杂的 ArrayList 字符串和布尔值作为公共静态 每个字段都被垃圾收集
  • Firebase Analytics 禁用受众国家/地区跟踪

    我正在开发一个严格不允许位置跟踪的应用程序 我想使用 Firebase Analytic 的其他功能 例如 PageTransitions 和 Crashalitics 但如果我无法禁用受众位置跟踪 我就无法使用其中任何功能 这是我在 An
  • 如何将安卓手机从睡眠状态唤醒?

    如何以编程方式将 Android 手机从睡眠状态唤醒 挂起至内存 我不想获取任何唤醒锁 这意味着手机在禁用 CPU 的情况下进入 真正的 睡眠状态 我想我可以使用某种RTC 实时时钟 机制 有人有例子吗 Thanks 为了让Activity
  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • Android libgdx 首选项丢失

    我在 Libgdx 引擎中创建了 Android 游戏 一段时间后 我注意到在某些应用程序杀手中杀死该应用程序后 或者如果我在 Android 设置中执行 强制关闭 操作 我保存到首选项中的游戏选项就会丢失 有办法防止这种情况吗 我从来没有
  • 获取 AlarmManager 中活动的 PendingIntents 列表

    我有办法获取活动列表PendingIntent在设备中 我开始工作AlarmManager我想看看我的PendingIntents 已正确创建和删除 也很高兴看到其他什么PendingIntent在那里 只是为了看看某些应用程序是否正在做一
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • 如何在 sqlite 中将 2 列合并为新列

    我有一个包含 3 列的表 我必须将 2 列中的值按降序排列到一列中 A B C z 1 2 f 5 7 s 9 5 使用此示例 输出会将 B 列和 C 列中的值放入其中 如下所示 A B s 9 f 7 f 5 s 5 z 2 z 1 我当
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • 在 Jetpack Compose 中启动动画矢量 Drawable

    我有一个动画矢量可绘制R drawable my anim 我想在 Jetpack Compose 中展示并开始 可绘制对象显示 渲染正确 但动画未启动 这是撰写视图 Composable fun SplashView Surface mo
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja
  • 无法运行我的应用程序,要求选择 Android SDK

    今天我已经安装了Android Studio 金丝雀 1 现在我无法运行我的应用程序 将出现以下对话框 我已经通过 文件 gt 项目结构 gt Android SDK 位置 设置了正确的 SDK 位置 期待您的帮助来解决这个问题 警告对话框
  • 如何删除因 Google Fitness API 7.5.0 添加的权限

    将我的 play services fitness api 从 7 0 0 更新到 7 5 0 后 我注意到当我将新版本上传到 PlayStore 时 它 告诉我正在添加一个新权限和 2 个新功能 我没有这样做 有没有搞错 在做了一些研究来

随机推荐

  • Python 的“unittest”缺少“assertHasAttr”方法,我应该使用什么来代替?

    在众多的断言方法中Python的标准unittest package https docs python org 3 library unittest html assertHasAttr 奇怪的是缺席了 在编写一些单元测试时 我遇到了一种
  • 防止对 PHP 的虚假循环 ajax 请求

    在我的网站上 我为博客文章创建了评论部分 用户可以编写评论 单击按钮 AJAX 请求将发送到包含 JSON 数据的 PHP PHP 将处理和验证数据 然后将其插入数据库 成功后 将从数据库中检索所有评论 并使用 JQuery 重新加载页面的
  • 将 MySQL 数据库移动到远程服务器后,“用户访问被拒绝”

    我在访问数据库时遇到一些问题 该脚本之前在我的本地主机上运行过 我将其导入到另一台服务器中 另一台服务器给我一条访问被拒绝的消息 给出的消息是 Access denied for user root 10 4 1 163 using pas
  • 对 USB 传输电缆进行编程/与 USB 设备驱动程序通信

    如何以编程方式访问 USB 传输电缆 例如 Belkin 的易传输电缆 http www belkin com easytransfercable 从Windows 我熟悉libusb win32 http libusb win32 sou
  • 如何显示eclipse项目类型

    在 Eclipse IDE 中 有图标显示项目类型 但我找不到文字描述 我希望右键单击 gt 属性来显示此信息 但根据此所有项目都是 项目 类型 即使它们是 java 项目或 Maven 项目等 有人知道吗 Thanks 根据 您不会在 E
  • 如何使用 TELETHON 按日期获取消息?

    如何获取今天发布的消息TELETHON 我正在使用下面的代码 date of post datetime datetime 2019 12 24 with TelegramClient name api id api hash as cli
  • 如何优化 R 中词干提取和拼写检查的性能?

    我有大约 1 400 万个文档 每个文档的平均字符数为 中位数 250 和平均值 470 我想在对它们进行分类之前执行拼写检查和词干提取 模拟文档 sentence lt We aree drivng as fast as we drove
  • WPF 4:DataGridColumnHeader 发生了什么?

    DataGridColumnHeader 发生了什么 看起来当 DataGrid 移至PresentationFramework 时它已被删除 DataGridColumnHeader http msdn microsoft com en
  • 汇编程序如何将 x86 指令助记符映射到二进制机器指令?

    我对编写 x86 汇编程序感兴趣 我想知道将 x86 汇编助记符指令 使用类似 Intel 的语法 映射到相应的二进制机器代码指令的好方法是什么 您想了解助记符到机器代码的物理映射吗 如果是这样 则第 2A 卷和第 2B 卷英特尔 IA32
  • 我可以将字符串映射到java中的方法吗?

    我正在用 Java 编写一个表达式计算器 我希望能够添加更多运算符 我目前只有 和 目前 我的代码如下所示 case return a b case return a b case return a b 这适用于我的代码 因为我只有几个运算
  • git 可以提交新的非空文件的“空版本”吗?

    git 可以提交某些文件的空版本吗 恰当的例子是 我需要首先添加新的 未跟踪的 非空文件并提交为empty文件 以便将其内容标记为新内容并进行审查 完整的 未跟踪的文件应not被添加到索引中 git diff应通过将文件与其提交的空版本进行
  • Facebook 页面默认登陆选项卡

    我有一个 Facebook 页面 我将默认登录页面设置为自定义选项卡 如果用户不喜欢该页面 这很有效 如果用户喜欢该页面 则登陆页面始终是墙 有什么方法可以确保您的自定义选项卡始终是登录页面 无论用户是否喜欢您的页面 Example htt
  • Jquery Select2 插件版本检查

    在我的项目中 我检查 Select2 插件是否以这种方式加载 if jQuery select2 但现在我将尝试验证加载了 Select2 插件的版本 3 5 X 或 4 X 我想也许你可以检查一下 4 X 版本中引入的选项 功能是否在 3
  • 从包内加载mathematica包

    我或多或少有以下设置 在 path to my packages我有两个包裹package1 m and package2 m 每个包的概要如下 BeginPackage package1 Unprotect Names package1
  • numpy.linalg.inv 如何计算正交矩阵的逆?

    我正在实施一个LinearTransformation类 继承自numpy matrix和用途numpy matrix I计算变换矩阵的逆 有谁知道 numpy 在尝试计算逆矩阵之前是否检查矩阵的正交性 我问这个问题是因为我的大多数矩阵 但
  • 使用 pandas df.plot 在子图上绘制多条线

    有没有一种方法可以在一个图上绘制多个数据框列 并为数据框绘制多个子图 例如 如果 df 有 12 个数据列 则在子图 1 上绘制第 1 3 列 子图 2 第 4 6 列等 我了解如何使用 df plot 为每一列创建一个子图 但不确定如何按
  • 在django中将图像和缩略图存储在s3上

    我正在尝试使用 django storages boto 和 sorl thumbnail 将图像缩略图存储在 s3 上 我可以使用它 但是即使图像很小 速度也很慢 我不介意当我保存表单并将图像上传到 s3 时速度很慢 但我希望它在那之后能
  • Spring JdbcTemplate 错误处理批量更新

    我正在尝试使用batchUpdate 更新表中的数千行 我的要求是 1 假设一个批次有1000条记录 235 号记录导致错误 如何找出导致错误的记录 2 假设记录 600 没有导致更新 原因可能是没有记录匹配 where 子句 如何找出未更
  • 为什么我的 bash 提示符没有更新?

    我是 git 新手 我正在尝试将当前 git 分支添加到我已经存在的提示中 其定义如下 RESET 017 NORMAL 033 0m RED 033 31 1m YELLOW 033 33 1m WHITE 033 37 1m SMILE
  • Android 如何设置 EditText 的最大“字数”限制

    如何在 Android 上设置最大字数限制EditText我知道如何设置字符限制 但我正在寻找字数限制 您需要添加一个TextChangedListener给你的EditText然后应用一个InputFilter请参阅以下代码 edDesc