java - 如何在 EditText 中设置 Min text (Mandatory) 和 Max text

标签 java android android-edittext

在我的 EditText 字段中,我想给一些最小文本作为强制性和最大文本作为限制,有什么办法可以实现吗?

如果要键入文本,数字计数必须减少。我该怎么做?

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="24dp"
    android:maxLength="175"
    android:ems="10" />

这是我添加的activity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home_layout);
    System.out.println(PRAYER_CATEGORY.length);
    tvPrayer = (TextView) findViewById(R.id.mystate);
    spinnerPrayers = (Spinner) findViewById(R.id.spinnerstate);

    ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, PRAYER_CATEGORY);
    adapter_state
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerPrayers.setAdapter(adapter_state);

    value=(EditText)findViewById(R.id.editText1);
    value
       .setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    if (value.getText().toString().trim()
                            .length() < 3) {

                        value.setError("Failed");
                    } else {
                        value.setError(null);
                    }
                }
                else {
                    if (value.getText().toString().trim()
                            .length() < 3) {
                        value.setError("Failed");
                    } else {
                            value.setError(null);
                    }
                }
            }
        });
        btnSpeakprayer = (ImageButton) findViewById(R.id.btnSpeakprayer);
        btn=(Button)findViewById(R.id.button1);
        pb=(ProgressBar)findViewById(R.id.progressBar1);
        pb.setVisibility(View.GONE);
        btn.setOnClickListener(this);

最佳答案

你可以试试这段代码

首先你要像这样在 xml 文件中设置你的最大长度

                    <EditText
                    android:id="@+id/editText"
                    android:layout_width="match_parent"
                    android:inputType="textPassword"
                    android:lines="1"
                    android:maxLength="15"
                    android:maxLines="1"
                    android:singleLine="true" />

然后在你的代码中你可以这样写

et_billamt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                if (et_billamt.getText().toString().trim().length() < 5) {
                    et_billamt.setError("Failed");
                } else {
                    // your code here
                    et_billamt.setError(null);
                }
            } else {
                if (et_billamt.getText().toString().trim().length() < 5) {
                    et_billamt.setError("Failed");
                } else {
                    // your code here
                    et_billamt.setError(null);
                }
            }

        }
    });

我设计的if是在没有focus之后,所以这里可以写min length condition和max length condition

关于java - 如何在 EditText 中设置 Min text (Mandatory) 和 Max text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17781553/

相关文章:

java - Bat 文件在退出时打开空白命令提示符

java - java和python中的RSA加密给出了不同的加密结果

java - 在 IntelliJ IDEA 中,如何创建以当前文件作为参数执行 shell 脚本的键绑定(bind)?

java - 内容解析器在 public void onActivityResult 的 fragment 内部变成红色

android - 使用 SeekBar 中的值更新 ListView 中的 EditText

android - 带有 gettext 和 editText 的空指针

java - 如何从路径编码重建二叉树?

android - Cordova 平台添加 android 给出错误 : "Error: The provided path is not an Android project."

java - 如何在 xml 文件中查找 ID?

android - EditText 自动换行