如何在Android中设置EditText的最小和最大字符限制?

2024-03-08

我想设置 EditText 框的最小和最大输入值。我正在为 EditText 创建一个简单的验证;它采用 A-Z 和 0-9 值,最小 5 个字符,最大 8 个字符。

我设置最大验证和其他验证如下:

 <EditText 
        android:id="@+id/edittextKode_Listing"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="5dp"
        android:layout_marginLeft="5dp"
        android:layout_alignTop="@+id/textKode_listing"
        android:layout_toRightOf="@+id/textKode_listing"
        android:maxLength="8"
        android:inputType="textCapCharacters"
        android:digits="0,1,2,3,4,5,6,7,8,9,ABCDEFGHIJKLMNOPQRSTVUWXYZ"
        />

但无法设置最小值要求。我的 EditText 框位于警报对话框中。我尝试了以下代码来解决该问题:

private void openInboxDialog() {

        LayoutInflater inflater = this.getLayoutInflater();
        // declare dialog view
        final View dialogView = inflater.inflate(R.layout.kirim_layout, null);

        final EditText edittextKode = (EditText) dialogView.findViewById(R.id.edittextKode_Listing);
        final EditText edittextalamat = (EditText) dialogView.findViewById(R.id.edittextAlamat);
        edittextKode.setOnFocusChangeListener(new OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                // TODO Auto-generated method stub

                if(edittextKode.getText().toString().length() > 0){
                    if(edittextKode.getText().toString().length() < 5)
                    {
                        edittextKode.setError("Error");
                        Toast.makeText(GPSActivity.this, "Kode listing value not be less than 5", Toast.LENGTH_SHORT).show();
                        edittextKode.requestFocus();

                    }
                }
            }
        });
        final AlertDialog.Builder builder = new AlertDialog.Builder(GPSActivity.this);
        builder.setTitle("Kirim").setView(dialogView)
                .setNeutralButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        gpsCoordinates = (TextView) findViewById(R.id.text_GPS_Coordinates);
                        kode = edittextKode.getText().toString();
                        alamat = edittextalamat.getText().toString();
                        catatan = edittextcatatan.getText().toString();
                        pengirim = edittextPengirim.getText().toString();
                        if (kode.length() > 0 && alamat.length() > 0
                                && catatan.length() > 0 && pengirim.length() > 0) {
                            message = "Kode listing : " + kode + "\nAlamat : "
                                    + alamat + " \nCatatan : " + catatan + " \n Pengirim : " + pengirim
                                    + "\nKoordinat GPS : "
                                    + gpsCoordinates.getText().toString();
                                sendByGmail();
                        } else {
                            Toast.makeText(
                                    getApplicationContext(),
                                    "Please fill all three fields to send mail",
                                    Toast.LENGTH_LONG).show();
                        }
                    }
                });
        builder.create();
        builder.show();
    }`

在此警报对话框中,我有两个 EditText 框。我想对第一个 EditText 应用验证。我打电话给setOnFocusChangeListener检查焦点变化时的最小长度。如果长度小于 5,则请求焦点,但它仍然在第二个 EditText 框中键入。

有人可以帮助我吗?


InputFilter[] lengthFilter = new InputFilter[1];
lengthFilter[0] = new InputFilter.LengthFilter(9); //Filter to 9 characters
mEditText.setFilters(lengthFilter);

这将创建一个过滤器来限制字符数。

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

如何在Android中设置EditText的最小和最大字符限制? 的相关文章

随机推荐

  • evp_crypt 在 c 中的 for 循环中不起作用

    我是新来的 如果我做错了什么 请原谅 我尝试使用加密字符串创建一个数组 我使用 EVP API 进行加密 这工作正常 但是当我尝试在 foo 循环中使用加密函数时 控制台没有给我任何信息 这是我的加密函数 char encrypt char
  • 如何在 Python 中压缩字符串

    我正在制作一个 python 脚本 将字符串发送到 Web 服务 在 C 中 我需要压缩或压缩这个字符串 因为带宽和 MB 数据是有限的 是的 大写 因为它非常有限 我正在考虑将其转换为文件 然后压缩该文件 但我正在寻找一种直接压缩字符串的
  • 为什么 Backbone Collection fetch 不返回承诺

    下面的示例代码运行良好 Auth controller prototype isLogged function Check if the user is authenticated var getAuthStatus this auth m
  • IE10 中本地存储的访问被拒绝

    昨天我安装了 Windows 8 现在试图了解为什么我在访问本地存储时收到 访问被拒绝 消息 该页面与浏览器 http localhost 位于同一台 PC 上 我的感觉是IE 10中的一项安全设置是错误的 但我还没弄清楚是哪一项 触发错误
  • 将 html 附加到指令中的元素并创建一个与其交互的本地函数

    在我的 AngularJS 应用程序中 我到处都有不同的复杂输入 例如 某些输入具有使用 Google Places 自动完成功能或 Twitter Bootstrap 自动完成功能的指令 我正在寻找一种方法来制作一个指令 当我们添加一些文
  • 使用箭头键浏览 JButton

    我做了一个JButton数组 代表卡片 共有 16 张 4 4 我怎样才能在其中浏览JButton使用键盘上的箭头而不是鼠标 我如何 单击 JButton按 ENTER 键而不是单击鼠标 也许有另一种方法可以做到这一点而不是使用JButto
  • 将 root 中的默认 python 更改为 anaconda 的 python

    我已经在我的系统中安装了 python 2 7 并且还安装了 Anaconda 现在 我正在使用 python 的 anaconda 它运行得很好 不幸的是 我想使用anaconda的python来使用root运行 问题是我无法更改 roo
  • 仅允许接下来的 5 个工作日 jquery datepicker

    我有一个日期选择器 用于设置约会 唯一的问题是老板希望预约日期仅限于接下来的 5 个工作日 我知道如何禁用周末 但我有点不清楚如何做到这一点 以便如果我选择周三 它可以让我选择下周三之前的日期并考虑周末 有人对如何实现这一目标有任何想法吗
  • 无法使用完成处理程序进行抛出操作

    我正在尝试添加一个throws使用完成处理程序添加到我现有的函数 但我不断收到警告说no calls throwing functions occur within try expression 在我抛出错误的部分中 我收到一条错误消息 从
  • 使用 UIBezierPath 绘制圆角

    我有一个设计元素无法弄清楚 希望有人能够指出我正确的方向 我试图构建的元素是这样的 实际上 它是一个圆角矩形 在左侧 顶部和右侧都有描边 底部应该没有描边 我尝试过使用以下代码 Create the rounded rectangle le
  • 如何优化这个 GORM 查询

    我有一个查询 它进行 2 个数据库查询 我是 GORM 的新手 不知道如何使用条件 where 子句或其他内容将其优化为 1 个查询 我也使用 springsecurity 并有一个用于登录安全的 User 类 我有一个带有 User 对象
  • 在特定时间后台获取

    我正在寻找即使应用程序终止也能在后台模式下获取数据的解决方案 对于这个问题有很多教程和答案 但我的问题与其他问题不同 我在 stackoverflow 上没有找到任何合适的解决方案 所以发布了这个问题 我有一个可以解释的场景 我正在使用存储
  • Nhibernate:以相同的精度和小数位映射所有小数

    据我了解 在 NHibernate 中 使用代码映射 我可以指定小数属性的精度和小数位数 如下所示 Property x gt x Dollars m gt m Precision 9 m Scale 6 这很好 但我想知道是否有一种方法可
  • Clojure 的动态变量和绑定的实际用途是什么?

    我看了一下参考资料 http clojure org vars Vars 20and 20the 20Global 20Environment http clojure org vars Vars 20and 20the 20Global
  • 如何在 Ubuntu 16 中下载 Appium 桌面

    我正在尝试在 Ubuntu 16 中下载 Appium Desktop 到目前为止我只是使用终端来运行它 据我所知 对于 Ubuntu 我必须下载他们在 git 上的源代码版本 源代码 tar gz 而不是他们的 exe windows 或
  • 在C中使用枚举类型变量作为字符串的简单方法?

    这就是我想做的 typedef enum ONE TWO THREE Numbers 我正在尝试编写一个函数来执行类似于以下内容的 switch case char num str 10 int process numbers str Nu
  • 为具有抽象复杂类型的模式生成类

    我正在使用一些定义抽象复杂类型的模式 例如
  • 所需类型与找到类型相同

    我想做这个 Foo
  • “Lato”字体在 Safari 中呈现奇怪,而不是在 Chrome 或 Firefox 中呈现

    我使用谷歌网络字体中的 Lato 字体 它在除 safari 之外的所有浏览器上显示良好 我用它font weight 100 以下是不同浏览器的一些屏幕截图 知道什么可能导致它变得非常薄吗 或者如果有办法我可以将其设置为渲染font we
  • 如何在Android中设置EditText的最小和最大字符限制?

    我想设置 EditText 框的最小和最大输入值 我正在为 EditText 创建一个简单的验证 它采用 A Z 和 0 9 值 最小 5 个字符 最大 8 个字符 我设置最大验证和其他验证如下