首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在EditText的日期中添加一个斜杠

,可以使用以下方法:

  1. 使用TextWatcher监听EditText的文本变化,在文本变化之后插入斜杠。
代码语言:txt
复制
EditText editText = findViewById(R.id.edit_text);

editText.addTextChangedListener(new TextWatcher() {
    private boolean isFormatting;
    private String previousText;

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

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

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

        String text = s.toString();
        if (!text.equals(previousText)) {
            String formattedText = formatText(text); // 格式化文本,在指定位置插入斜杠
            isFormatting = true;
            s.replace(0, s.length(), formattedText);
            isFormatting = false;
        }
    }
});

private String formatText(String text) {
    // 假设日期格式为DDMMYYYY
    if (text.length() == 2 || text.length() == 5) {
        text += "/";
    }
    return text;
}
  1. 在EditText的输入监听中判断光标位置,在需要插入斜杠的位置插入。
代码语言:txt
复制
EditText editText = findViewById(R.id.edit_text);

editText.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_DEL) {
            int cursorPosition = editText.getSelectionStart();
            String text = editText.getText().toString();

            if (cursorPosition == 3 || cursorPosition == 6) {
                // 如果光标在斜杠后面,删除斜杠
                editText.setText(text.substring(0, cursorPosition - 1) + text.substring(cursorPosition));
                editText.setSelection(cursorPosition - 1);
                return true;
            }
        }
        return false;
    }
});

这两种方法可以根据需求选择其中一种来实现在EditText的日期中添加一个斜杠。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • android中资源文件夹中添加一个图片资源

    刚刚看了一下一个帧布局简单Android示例,纠结了半天不知道如何将图片加到resource中drawable中去。    ...比如在一个TestDemoRes/drawable文件夹中,新添加一张图片资源要如何添加。    ...我直接将图片复制到bin\res\drawable-hdpi或者bin\res\drawable-mdpi中去,然后eclipse中刷新图片仍然不显示。    ...上网找到了关于加载图片资源问题解决办法: 直接拷贝需要添加图片资源,然后Res/drawable文件夹 右键点击 选择“粘贴”即可把图片拷贝进去。...下面是一个简单帧布局Android应用实例,实现一只小鸟飞翔动画效果,参考了《大话企业级Android应用开发实战》15.2.5帧布局(FrameLayout) P110-113页。

    3.1K20

    一.使用Scheduled 定时任务器

    ,分为 6 或 7 个域,每一个域代表一个含义 corn 从左到右(用空格隔开):秒 分 小时 月份中日期 月份 星期中日期 年份 Cron 有如下两种语法格式: Seconds Minutes...:表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五; 斜杠(/):x/y 表达一个等步长序列,x 为起始值,y 为增量步长值。...L 日期字段中,表示这个月份最后一天,如一月 31 号,非闰年二月 28 号;如果 L 用在星期中,则表示星 期六,等同于 7。...W 字符串只能指定单一期,而不能指定日期范围; LW 组合:日期字段可以组合使用 LW,它意思是当月最后一个工作; 井号(#):该字符只能在星期字段中使用,表示当月某个工作。...它意思是计划所关联日期,如果日期没有被关联,则相当于日历中所有日期。例如 5C 日期字段中就相当于日历 5 以后第一天。星期字段中相当于星期日后第一天。

    48110

    Android为Tiny4412设备驱动proc目录下添加一个可读版本信息文件

    https://www.zalou.cn/article/152879.htm上节,我们明白了proc文件系统作用,接下来我们已经写好led驱动基础上,proc目录下创建一个文件夹,然后加入led...我们init函数最后加入: //定义proc文件系统节点 struct proc_dir_entry *dev_dir , *dev_version; //创建一个目录 dev_dir = proc_mkdir...("Tiny4412_leds", NULL); //创建一个文件 dev_version = create_proc_entry("version", S_IRUGO, dev_dir); //调用读版本函数...include <linux/delay.h #include <linux/gpio.h #include <mach/gpio.h #include <plat/gpio-cfg.h //添加必要头文件...,希望本文内容对大家学习或者工作具有一定参考学习价值,谢谢大家对ZaLou.Cn支持。

    78520

    SpringBoot整合Scheduled(定时任务器)

    我们来看下在SpringBoot中我们怎么使用 Scheduled 一、项目使用 1.创建项目添加依赖   创建一个SpringBoot项目,并添加如下依赖 <dependency...(,):表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五; ●斜杠(/):x/y 表达一个等步长序列,x 为起始值,y 为增量步长值。...L 日期字段中,表示这个月份最后一天,如一月 31 号,非闰年二月 28 号;如果 L 用在星期中,则表示星期六,等同于 7。...W 字符串只能指定单一期,而不能指定日期范围; ●LW 组合:日期字段可以组合使用 LW,它意思是当月最后一个工作; ●井号(#):该字符只能在星期字段中使用,表示当月某个工作。...它意思是计划所关联日期,如果日期没有被关联,则相当于日历中所有日期。例如 5C 日期字段中就相当于日历 5 以后第一天。1C 星期字段中相当于星期日后第一天。

    88820

    SpringBoot整合Scheduled(定时任务器)

    我们来看下在SpringBoot中我们怎么使用 一、项目使用 1.创建项目添加依赖 创建一个SpringBoot项目,并添加如下依赖 ...:表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五; 斜杠(/):x/y 表达一个等步长序列,x 为起始值,y 为增量步长值。...L 日期字段中,表示这个月份最后一天,如一月 31 号,非闰年二月 28 号;如果 L 用在星期中,则表示星期六,等同于 7。...W 字符串只能指定单一期,而不能指定日期范围; LW 组合:日期字段可以组合使用 LW,它意思是当月最后一个工作; 井号(#):该字符只能在星期字段中使用,表示当月某个工作。...它意思是计划所关联日期,如果日期没有被关联,则相当于日历中所有日期。例如 5C 日期字段中就相当于日历 5 以后第一天。1C 星期字段中相当于星期日后第一天。

    87410

    【Android源码解析】 自定义可清除输入框

    ,可以输入框旁边放一个清除图片,然后给Edittext和清除小图片放到布局中,给布局来一个背景图片,看起来也比较美观,然后根据edittext.getText().length来设置小图片是否可见...但是随着自己见得多了就发现这样虽然也能实现,真的很水,所以就想着自定义一个能清除Edittext。...下面说一下自己思路: 1.首先自定义组件继承edittext 2.重写构造方法,初始化一个清楚按钮小图标,并设置它位置 3.监听edittext焦点改变,根据焦点变化显示隐藏小图标 4.重写一个小图标的按钮点击事件...贴上部分代码: /** * 这里我们不能设置edittext点击事件,所以我们可以这样做一下: * 当我们按下位置 是(输入框宽度-图标的宽度-图标距离右侧宽度)和(输入框宽度...焦点变化改变图片显示与否,输入框里字符串长度如果大于0,显示,否则隐藏 * by Hankkin at:2015年8月11 16:32:47 * @param v

    81110

    JavaScript 高级程序设计(第 4 版)- 基本引用类型

    Date.parse() 接收一个表示日期字符串参数,尝试将这个字符串转换为表示该日期毫秒数 支持下列格式日期 “月//年”,如"5/23/2019"或“05/23/2020”; “月名 ,...因此,操作符(如大小于号)可以直接使用他返回值 # 日期格式化方法 toDateString()显示日期中周几、月、、年(格式特定于实现); toTimeString()显示日期中时、分、秒和时区...(格式特定于实现) toLocaleDateString()显示日期中周几、月、、年(格式特定于实现和地区); toLocaleTimeString()显示日期中时、分、秒(格式特定于实现和地区)...元字符正则表达式中都有一种或多种特殊功能,所以要匹配元字符本身就需要用反斜杠转义 // 匹配第一个“bat”或“cat”,忽略大小写 let pattern1 = /[bc]at/i; // 匹配第一个...引用类型与原始值包装类型主要区别在于对象生命周期 通过new实例化引用后,得到实例会在离开作用域时被销毁 自动创建原始值包装对象则只存在于访问它那行代码执行期间 不能在运行时给原始值添加属性和方法

    74020

    Android技能树 — Activity小结

    举个简单例子,比如我们Activity上有个按钮A,,这时候启动一个弹框或者启动一个透明Activity,这个按钮A肯定是不能按,但是我们可以看到A这个按钮,这时候onStop不会执行,但会执行...异常生命周期 我们看脑图就知道,异常生命周期中,我们会额外执行二个方法:onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle...我发现一个现象,就是比如我们Activity里面有个EditText,这时候我在里面输入了123456,我也没在onSaveInstanceState和onRestoreInstanceState里面做特殊处理...然后super.onRestoreInstanceState(savedInstanceState);方法中会再调用每个ViewonRestoreInstanceState方法,我们EditText...");所以如果你activityAndroidManifest.xml中没有添加这个category,就会无法成功匹配。

    12410

    MVVM项目实战之路-搭建一个登录界面

    MVVM具体意义以及与MVC,MVP等对比这里不再赘述。 二.实现一个登录界面 这里,我们先用这种模式实现一个登录界面,界面简单如下: ?...启用DataBinding 首先,要保证你Gradle插件版本要大于 1.5.0-alpha1及以上(现在基本都比这个版本高了吧),然后app下build.gradle文件添加以下代码: dataBinding...再看mOpenUserList与mSnackbarText,它们是LiveData类型,LiveData是一个数据持有类,并且在给定生命周期中其变化是可观测,这里用来处理ViewModels与 UI...login()方法由点击登录按钮后触发,这里注意,因为loginName和loginPass已经与我们视图文件绑定在一起了,所以就不用在调用时候从EditText获取文本内容再传进来了。...,检查参数这里写比较简单,其实应该用接口来检验,这又牵扯到一层封装,这里暂时先不写。

    2.2K70

    Spring Boot整合Scheduled定时任务器、整合Quartz定时任务框架

    (*) :可用在所有字段中,表示对应时间域一个时刻,例如,*分钟字段时,表示"每分钟"。   ...注意:斜杠/和不使用斜杠写法,比如第一位,如果不写斜杠/,那么表示每分钟第几秒执行,如果写斜杠/表示每隔几秒执行。   ...L 日期 字段中,表示这个月份最后一天,如一月 31 号,非闰年二月 28 号;如果 L 用在星期中,则表示星 期六,等同于 7。...8)、LW 组合 :日期字段可以组合使用 LW,它意思是当月最后一个工作。 井号(#):该字符只能在星期字段中使用,表示当月某个工作。...例如 5C 日期字段中就相当于日历 5 以后第一天。 1C 星期字段中相当于星期日后第一天。 Cron 表达式对特殊字符大小写不敏感,对代表星期缩写英文大小写也不敏感。

    94710

    Spring Boot整合Scheduled定时任务器、整合Quartz定时任务框架

    (*) :可用在所有字段中,表示对应时间域一个时刻,例如,*分钟字段时,表示"每分钟"。   ...注意:斜杠/和不使用斜杠写法,比如第一位,如果不写斜杠/,那么表示每分钟第几秒执行,如果写斜杠/表示每隔几秒执行。   ...L 日期 字段中,表示这个月份最后一天,如一月 31 号,非闰年二月 28 号;如果 L 用在星期中,则表示星 期六,等同于 7。...8)、LW 组合 :日期字段可以组合使用 LW,它意思是当月最后一个工作。 井号(#):该字符只能在星期字段中使用,表示当月某个工作。...例如 5C 日期字段中就相当于日历 5 以后第一天。 1C 星期字段中相当于星期日后第一天。 Cron 表达式对特殊字符大小写不敏感,对代表星期缩写英文大小写也不敏感。

    55720

    界面无小事(七):使用代码动态增删布局

    效果图 不多废话, 先上图, 有兴趣再看下去: 效果图 前言 这篇是之前一篇旧文改, 也是想将这篇放入自己界面无小事专题, 所以当成新篇章来写, 绝对不是为了什么更之类事情哦(手动滑稽...最关键是增删按钮代码: 添加条目 /** * @param v 添加一个新条目 */ private void addItem(View v) { if (v == null) {...根据传入v, 判断是mListAddBtn中一个 int curView = -1; for (int i = 0; i < mAddList.size(); i++) {...删除条目 /** * @param v 删除一个EditText条目 */ private void delItem(View v) { if (v == null) {...最后 其实这样改动视图还是比较过时, 之后会准备一篇RecyclerView增删条目的文章. 到时候一对比就可以看到效果了. 但是某些场合用用还是可以, 比如弹窗中微调布局之类.

    45830

    Android编程实现短信编辑器功能示例

    本文实例讲述了Android编程实现短信编辑器功能。分享给大家供大家参考,具体如下: 修改短信数据库,从而生成任意手机号发送短信。 AndroidManifest.xml <?...wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:text="<em>添加</em>当前时间...) findViewById(R.id.get_phone); getMessage = (<em>EditText</em>) findViewById(R.id.get_message); //获取当前时间...getMessage.getText().toString(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd...更多关于Android相关内容感兴趣读者可查看本站专题:《Android短信与电话操作技巧汇总》、《Android文件操作技巧汇总》、《Android编程之activity操作技巧总结》、《Android

    81430

    Android技能树 — Activity小结

    举个简单例子,比如我们Activity上有个按钮A,,这时候启动一个弹框或者启动一个透明Activity,这个按钮A肯定是不能按,但是我们可以看到A这个按钮,这时候onStop不会执行,但会执行...我们看脑图就知道,异常生命周期中,我们会额外执行二个方法:onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState...我发现一个现象,就是比如我们Activity里面有个EditText,这时候我在里面输入了123456,我也没在onSaveInstanceState和onRestoreInstanceState里面做特殊处理...然后super.onRestoreInstanceState(savedInstanceState);方法中会再调用每个ViewonRestoreInstanceState方法,我们EditText...");所以如果你activityAndroidManifest.xml中没有添加这个category,就会无法成功匹配。

    49910

    没用过.gitignore还敢自称高级开发?

    Git是跟踪项目中所有文件好工具, 但是,您会希望项目的整个生命周期中不要跟踪某些文件及其变更。 系统文件(i.e.....gitignore中每一行都排除一个文件或一组(与模式匹配)文件, .gitignore语法很灵活: # 忽略单个文件 mycode.class # 忽略整个目录 /mydebugdir/...package.json Windows使用者注意:.gitignore文件中路径使用正斜杠分隔符,而不是反斜杠 对已提交文件忽略变更 临时忽略变更 开发阶段,有时候要临时忽略文件变更,特别是你拿到源代码需要针对本地环境做一些修改时有用...你需要从Git Index中移除这个文件信息: .gitignore文件中添加这个文件 从Index移除文件信息 git rm --cached 提交删除文件和更新.gitignore...只个人系统上忽略文件 附2. 个人系统上跨仓库忽略文件 Git为我们提供一种机制,告诉我们不应在存储库中跟踪哪些文件, 这是一项强大功能。

    1.3K10
    领券