验证仅允许在 Android 中编辑文本中使用数字和字符

2023-11-29

在我的应用程序中,我必须验证EditText。它应该只允许字符、数字、下划线和连字符。

这是我的代码:

edittext.addTextChangedListener(new TextWatcher() {
                                        
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub                              
    }
                                        
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub
    }
                                        
    @Override
    public void afterTextChanged(Editable s) {
        // validation codes here
                                
        location_name=s.toString();
        Toast.makeText(getApplicationContext(),location_name, Toast.LENGTH_SHORT).show();                
        
        if (location_name.matches(".*[^a-z^0-9].*")) {
            location_name = location_name.replaceAll("[^a-z^0-9]", "");
            s.append(location_name);
            s.clear();
            Toast.makeText(getApplicationContext(),"Only lowercase letters and numbers are allowed!",Toast.LENGTH_SHORT).show();
        }                                   
    }

});     
                                    
location.add(location_name);

当我输入EditText,应用程序被强制关闭。


Android 中有一些非常简单的方法,而不是使用“手动”检查方法:

InputFilter filter = new InputFilter() { 
    public CharSequence filter(CharSequence source, int start,
                               int end, Spanned dest, int dstart, int dend) { 

        for (int i = start;i < end;i++) { 
            if (!Character.isLetterOrDigit(source.charAt(i)) && 
                !Character.toString(source.charAt(i)).equals("_") && 
                !Character.toString(source.charAt(i)).equals("-")) 
            { 
                return ""; 
            } 
        } 
        return null; 
    } 
}; 

edittext.setFilters(new InputFilter[] { filter }); 

或者另一种方法:在创建 EditText 的 XML 中设置允许的字符:

<EditText 
  android:inputType="text" 
  android:digits="0,1,2,3,4,5,6,7,8,9,*,qwertzuiopasdfghjklyxcvbnm,_,-" 
  android:hint="Only letters, digits, _ and - allowed" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证仅允许在 Android 中编辑文本中使用数字和字符 的相关文章

  • 在 JellyBean 上使用 LogCat

    我有一个非常随机发生的错误 所以我依赖LogCat我从 Play 商店购买的监控应用程序 以查看发生时设备上抛出的异常 自从使用 Jelly Bean 以来 我没有看到任何日志记录 我读过 使用 Jelly Bean 应用程序只能看到Log
  • CustomWebViewRenderer DownloadManager 与 CopyBackForwardList 的问题

    我仍在学习 android 我正在使用它创建一个混合应用程序推荐 https stackoverflow com questions 58967929 xamarin webview webpage cant download files
  • 在 Android 和 iOS 上播放的视频/音频编解码器设置是什么

    哪些编解码器设置将生成可在 Android videoView 和 iOS UIWebView 上播放的有效视频 安卓 http developer android com guide appendix media formats html
  • 使用react-native测量音频的响度

    我正在创建一个应用程序 Android 来使用本机反应录制手机中的语音 一项要求是实时测量声音的响度并基于它制作动画 我尝试使用react native audio库 但问题是响度监控仅在IOS中支持 我检查了世博会音频库 但找不到方法 有
  • 脸书状态更新

    我在 Facebook 上更新状态时遇到问题 我正在使用 Facebook sdk 问题是我的状态正在发布但不显示文本 这是我的代码 gt 公共类 NetRockersUpdate 扩展 AsyncTask Override protect
  • android以编程方式打开电池设置

    我正在寻找一种从 Android 应用程序打开电池设置屏幕的方法 到目前为止我发现了两个意图 Intent ACTION POWER USAGE SUMMARY Settings ACTION BATTERY SAVER SETTINGS
  • Android:当一个服务被杀死时,我们如何保存服务状态以供以后恢复?

    我们创建了一个应用程序 本质上是一个计时器 秒表 具有一些精心设计的功能 我们定义了一个服务 用于计时并提醒订阅某些计时器事件的侦听器 活动等 我们希望能够在 Android 终止我们的服务 用于内存回收 时保存计时器 秒表的状态 经过的秒
  • 获取TextView的高度

    我有一些文字将被放入TextView 我这样做是使用setText 现在我需要找到文本在文本中占据的行数或高度TextView 我尝试使用getHeight 但它总是返回 0 无论如何 有没有办法获得文本中存在的文本的高度TextView
  • Android 4.3 的 Google 地图 Android API V2 问题

    我是谷歌地图的新手 刚刚点击此链接http www androidhive info 2013 08 android working with google maps v2 http www androidhive info 2013 08
  • 如何在android中添加自定义列表视图点击操作栏的数量

    请帮助我如何将自定义列表视图点击次数添加到 Android 中的自定义操作栏 文本视图 这是我的Activity Class public class DetaisRESTActivity extends Activity String v
  • 类型“Null”不是类型“Widget”的子类型

    我正在编写一个关于 flutter 的代码 以便在 android ios 和 web 上使用 Google 登录 但我第一时间就遇到了这个错误 我在 Android 模拟器上运行它来检查它是否正常工作 我现在还没有将其设置为网络 在模拟器
  • 将多个视频文件合并到一个文件中

    我有多个以相同帧速率和分辨率录制的视频 我想将两个视频合并为一个视频 因此结果文件将是大视频 我正在使用 MP4 解析器 api 并使用下面的代码 Movie countVideo new MovieCreator build Channe
  • ChromeCast 无法播放 .m3u8 格式的 HLS

    应用程序中集成了 chromecast 一切正常 除了不播放 m3u8 格式的实时流媒体 url 而是播放 m3u8 格式的电影 url 我这样做是为了将 url 设置为 chromecast return new MediaInfo Bu
  • 没有 ContentProvider 的 SyncAdapter

    我想为我想要与服务器同步的内容实现 SyncAdapter 看来要做到这一点 您需要为 SyncAdapter XML 属性文件中指定的权限注册一个 ContentProvider 由于我不希望手机的其余部分可以访问此内容 因此我没有实现自
  • 测试奖励广告未显示 - 广告加载失败:LoadAdError(代码:3,域:com.google.android.gms.ads,消息:无广告配置。)

    我目前无法展示测试奖励广告 我正在使用激励广告Sample ad unit ID中提供的doc https developers google com admob android test ads ca app pub 3940256099
  • 存储 FCM 的令牌

    我正在尝试将我的令牌存储在我的云数据库中 我稍后将在云函数中使用此令牌 以便向已添加为好友的用户发送通知 然而 推送设备令牌不起作用 因为用户未经授权 授权后我无法保存它 因为令牌是在安装应用程序时生成的 private static fi
  • Xamarin.Forms 用相机拍照显示方向错误并且后退按钮崩溃

    我正在使用此处的 Xamarin Forms Camera 示例 https github com XForms Xamarin Forms Labs Samples tree master XF Labs CameraSample htt
  • 使用 Nexus 10 在 Android 4.3 上滚动时性能不佳

    我的应用程序有一个带有一些滚动的列表视图 在我测试过的所有手机 Nexus One Nexus 4 和 Galaxy S3 4 上都表现得非常好 以 60fps 滚动 但 Nexus 10 上的表现很糟糕 大概在 15fps 左右 我已经将
  • Android 中的垂直(旋转)标签

    我需要两种在 Android 中显示垂直标签的方法 水平标签逆时针旋转 90 度 字母在侧面 带有字母的水平标签 如商店招牌 我是否需要为这两种情况 一种情况 开发自定义小部件 我可以使 TextView 以这种方式呈现吗 如果我需要完全自
  • 在另一个布局中以编程方式膨胀布局

    我的 Android 应用程序需要帮助 我需要在另一个布局中膨胀一个布局 但我不知道该怎么做 我的xml代码是这样的 item xml 我需要膨胀多个 xml 取决于可变数量

随机推荐

  • 使用 HTML 的 PHP 表格

    我的目标是使用一个 txt 文件 其中包含填写表单的特定响应所需的数据 该表格应该有用户名和密码 此外 还可以在表单上设置价格范围参数 用户名可以任意大小写 但密码区分大小写 我已经创建了我将使用的 html 表单 txt 文件中的数据包含
  • 使用函数参数进行回文条件检查[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 这是使用函数参数来检查字符串是否回文的 php 代码
  • Java 日期之间的天数(作业)

    当我运行该程序时 这是几天的休息时间 对我做错了什么有什么建议吗 我知道有一种更简单的方法可以做到这一点 但为此我试图展示查找之间的天数的所有实际步骤 家庭作业 因此不能使用日期时间库 public class DaysBetween pu
  • Spring REST 模拟上下文路径

    我尝试使用以下代码片段设置 Spring Rest 模拟的上下文路径 private MockMvc mockMvc Before public void setUp this mockMvc MockMvcBuilders webAppC
  • 重复条目并重命名 pandas 数据透视表中的列行而不进行聚合

    我正在尝试将这个示例数据帧从长格式重塑为宽格式 而不聚合任何数据 import numpy as np import pandas as pd df pd DataFrame SubjectID A A A B B C A Date 201
  • ssh远程主机标识已更改[关闭]

    Closed 这个问题是与编程或软件开发无关 目前不接受答案 我已经重新安装了服务器 并且收到以下消息 user hostname ssh root pong WARNING REMOTE HOST IDENTIFICATION HAS C
  • Libsodium“调用未定义的函数sodium_randombytes_buf”[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 尝试遵循示例here 但它给了我 Fatal error Uncaught Error Call to undefined function sodium randombytes buf
  • 如何更改 adobe reader 缩放级别?

    我有一个 Jasper Report 它在 Java Spring 中创建 PDF 我已经尝试改变缩放级别几个小时但没有成功 每当我使用 Adob e reader 打开 pdf 时 其分辨率为 149 同事甚至更糟 曾经有一个类似的que
  • 为什么可以将匿名类的实例分配给接口变量?

    我是 Java 新手 我无法理解之间的关系anonymous class instance and interface 请参阅中的示例这个网站 anonymous instance as a variable Runnable r new
  • 读取和写入文件的最简单方法

    有很多不同的方式来读取和写入文件 文本文件 不是二进制 在 C 中 我只需要简单且使用最少代码的东西 因为我将在项目中大量使用文件 我只需要一些东西string因为我需要的只是阅读和写作strings Use 文件 ReadAllText
  • 我是否需要在
    标记等末尾添加“/”? [复制]

    这个问题在这里已经有答案了 你需要有一个 在一个结束时img标签 我看见一个例子在 W3schools com 上没有 img src smiley gif alt Smiley face height 42 width 42 我知道没有必
  • 提取方法中的空验证

    我使用 c 8 和可空分析器 csproj
  • Shiny flexdashboard 中的facet_grid 给出错误“分面变量必须至少有一个值”

    我在获取 ggplot2 时遇到一些问题facet grid评估系统的绘图 该图渲染良好 但我在浏览器和控制台中收到以下错误 错误 分面变量必须至少有一个值 每次我根据输入切换品牌条目时都会发生这种情况input brand 应用程序不会崩
  • OpenCV:findContours 函数错误

    我正在使用 2 4 3 版本的 opencv 并尝试在精明的边缘检测后使用 findContours 函数 如下所示 struct Component cv Rect boundingBox double area double circu
  • Yii2 从后端控制器调用 api 方法

    我已经按照 Yii Rest API 文档基于高级模板实现了 API 我想从后端控制器调用 API 方法 可以做吗 Thanks 所以 我终于找到了解决办法 我的 Yii2 应用程序有高级模板 我已经创建了 api 模块 所以应用程序有 3
  • 复制到 CUDA 常量内存时设备符号无效

    我有几个图像处理应用程序的文件 由于在执行某些图像处理算法时图像的行数和列数不会改变 因此我试图将这些值放入常量内存中 我的应用程序看起来像 图像处理程序 constant int c rows constant int c cols if
  • 单击按钮时触发 BroadcastReceiver

    当我单击 main xml 上的按钮时 我试图接收 BroadcastReceiver mainfest xml
  • AutoCompleteTextView 不响应对其 ArrayAdapter 的更改

    The ArrayList似乎填充得很好 但无论我使用什么方法 我似乎都无法让适配器填充数据 我尝试添加到ArrayList 也到ArrayAdapter 无论哪种方式 我都无法在AutoCompleteTextView水平 或在Array
  • 如何读取Apache Derby数据库日志?

    我想看一下 Derby 的数据库日志 我不是指 derby log 文件 我指的是 derby log 文件中的二进制日志文件 database name log目录 有没有一种工具可以以人类可读的格式显示它们 我询问的原因是我正在使用 A
  • 验证仅允许在 Android 中编辑文本中使用数字和字符

    在我的应用程序中 我必须验证EditText 它应该只允许字符 数字 下划线和连字符 这是我的代码 edittext addTextChangedListener new TextWatcher Override public void o