Android Studio 添加文本以编辑按键上的文本

标签 android

我有一个 EditText,用户应该以以下格式输入时间:hh:mm。 当用户输入小时后,我想自动在编辑文本中添加一个分号。我想到了类似 onKeyDown 的方法来检查编辑文本是否由两个数字组成,在这种情况下添加一个分号。这可能吗?如果是,怎么办?

最佳答案

您将需要使用完全满足您需要的 TextWatcher。基本上它有 3 个方法:beforeTextChanged()onTextChanged()afterTextChanged()

前两个方法不用于更改 EditText 内部的文本,它们仅用于跟踪对文本所做的更改。 最后一个 是我们可以修改和设置文本样式的方法。代码看起来像这样:

String text = "";

yourEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {

            // work with editable here and add :

            String newValue = editable.toString();

            if (newValue.length() > text.length()) {
                text = editable.toString();
                if (text.length() == 2) {
                    yourEditText.setText(text + ":");
                }
            }
            else if (newValue.length() < text.length()) {
                text = editable.toString();
            }
        }
    });

关于Android Studio 添加文本以编辑按键上的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41463639/

相关文章:

android - 操作栏如何在 FragmentTransaction replace() 和 FragmentTransaction add() 上运行

java - 由于未找到 ID 错误的 View ,列表 fragment 未出现

java - 从生成的 EditText 中获取文本

android - 在 OnClickListener 中刷新 Android ListView 数据

java - 在 Android 中打开 PDF 文件

java - 如何获得物理世界的精确高度和宽度(以米为单位)?

android - 方法 getBitmapFromMemCache(String) 未定义

java - 谷歌地图v2 无法在我的 Android 应用程序中运行

Android:在 Google Map API v2 中绘制从 A 到 B 的路线

Android - 网络状态广播接收器不接收 Intent