【问题标题】:inputType=password, cannot be deleteinputType=密码,不能删除
【发布时间】:2019-02-11 13:49:17
【问题描述】:

我为用户名的 EditText 和密码的 EditText 制作了相同的 addTextChangedListener。我希望 risist 用户在其长度达到限制字符数时输入更多内容。所以我尝试通过 toast 警告用户,并删除他们输入的新字符。这是代码`

 ETcreateusername.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if(ETcreateusername.getText().length()>15){
                ETcreateusername.dispatchKeyEvent(new KeyEvent(
                        KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
                showToast();
            }
        }
        private void showToast() {
            LayoutInflater inflater = getLayoutInflater();
            View layout = inflater.inflate(R.layout.toast_username,(ViewGroup)findViewById(R.id.toast_root));
            Toast toast= new Toast(getApplicationContext());
            toast.setGravity(Gravity.TOP , 0, 800);
            toast.setDuration(Toast.LENGTH_SHORT);
            toast.setView(layout);
            toast.show();
        }
        @Override
        public void afterTextChanged(Editable s) {
        }
    });

对于用户名的EditText,它可以完美地工作。但是每当我在密码的EditText中输入太多字符时,应用程序就会崩溃,仅仅是因为它的inputType是密码。谁能告诉我为什么,我该如何解决这个问题。谢谢。

【问题讨论】:

  • 崩溃意味着会有崩溃日志。请张贴。

标签: android


【解决方案1】:

我认为这不是你想要做的最好的实现。也许如果您添加某种提示,说明最小和最大字符是多少,并且在您的 xml 中您可以设置编辑文本最大长度,如下所示:

<com.google.android.material.textfield.TextInputEditText
                android:id="@+id/et_user"
                maxLenght="15" // This line
                android:layout_width="match_parent"
                android:hint="@string/login_hint_document"
                android:inputType="number" />

【讨论】:

    【解决方案2】:

    我的猜测是你搞乱了用于隐藏密码字符的逻辑。您应该尝试将您的逻辑移动到 beforeTextChanged 方法。感觉比较安全

    【讨论】:

      猜你喜欢
      • 2016-01-24
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2015-07-11
      相关资源
      最近更新 更多