简体   繁体   English

TextInputLayout:添加的EditText不是TextInputEditText。 请切换到使用该类

[英]TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead

Always getting this warning TextInputLayout: EditText added is not a TextInputEditText. 始终收到此警告TextInputLayout:EditText添加的不是TextInputEditText。 Please switch to using that class instead. 请切换到使用该类。 and not finishing Activity for First time. 而不是第一次完成活动。 On Second time not getting an warning and activity finishing perfectly. 第二次没有得到完美的警告和活动。

activity_login.xml activity_login.xml

<LinearLayout
        android:id="@+id/ll_login_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:visibility="visible">


        <android.support.design.widget.TextInputLayout
            android:id="@+id/email_field"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="16dp"
            android:hint="@string/email_phone"
            android:paddingTop="48dp">

            <android.support.v7.widget.AppCompatEditText
                android:id="@+id/et_email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:inputType="textEmailAddress"
                android:paddingEnd="0dp"
                android:paddingStart="8dp" />

        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/password_field"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/password"
            android:paddingBottom="16dp">

            <android.support.v7.widget.AppCompatEditText
                android:id="@+id/et_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:inputType="textPassword"
                android:paddingEnd="0dp"
                android:paddingStart="8dp" />

        </android.support.design.widget.TextInputLayout>


        <Button
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginEnd="@dimen/button_login_social_margin"
            android:layout_marginStart="@dimen/button_login_social_margin"
            android:layout_marginBottom="@dimen/activity_vertical_margin"
            android:text="@string/login"
            android:textColor="@android:color/black" />

    </LinearLayout>

LoginActivity.java LoginActivity.java

    public class LoginActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        final AppCompatEditText etEmailOrPh = (AppCompatEditText) findViewById(R.id.et_email);
        final AppCompatEditText etPassword = (AppCompatEditText) findViewById(R.id.et_password);
        final Button btnLogin = (Button) findViewById(R.id.btn_login);

        assert etEmailOrPh != null;
        assert etPassword != null;
        assert  btnLogin != null;

        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String emailOrPhone = etEmailOrPh.getText().toString().trim();
                String password = etPassword.getText().toString().trim();

                if(emailOrPhone.isEmpty()){
                    etEmailOrPh.setError(getResources().getString(R.string.email_phone_mandatory));
                    etEmailOrPh.requestFocus();
                } else if(emailOrPhone.contains("@") && CommonUtil.isValidEmail(emailOrPhone)) {
                    etEmailOrPh.setError(getResources().getString(R.string.email_error));
                    etEmailOrPh.requestFocus();
                } else if(password.isEmpty()) {
                    etPassword.setError(getResources().getString(R.string.password_mandatory));
                    etPassword.requestFocus();
                } else {
                    SharedPreferences cache = LoginActivity.this.getSharedPreferences(Constants.SHARED_PREF_NAME, Context.MODE_PRIVATE);
                    final SharedPreferences.Editor preferenceEditor = cache.edit();
                    preferenceEditor.putInt(Constants.SHARED_PREF_ITEM_USER_ID, 1);
                    preferenceEditor.apply();
                    setResult(RESULT_OK);
                    finish();
                }
            }
        });

    }
}

登录屏幕

Change this EditText 更改此EditText

android.support.v7.widget.AppCompatEditText

to this 对此

android.support.design.widget.TextInputEditText

Full Code : 完整代码:

<android.support.design.widget.TextInputLayout
       android:id="@+id/email_field"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:paddingBottom="16dp"
       android:hint="@string/email_phone"
       android:paddingTop="48dp">

    <android.support.design.widget.TextInputEditText
            android:id="@+id/et_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:inputType="textEmailAddress"
            android:paddingEnd="0dp"
            android:paddingStart="8dp"
        />
</android.support.design.widget.TextInputLayout>

Try not using 尽量不要使用

<android.support.v7.widget.AppCompatEditText

instead use 改为使用

<EditText

So you will get: 所以你会得到:

<EditText
            android:id="@+id/et_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:inputType="textEmailAddress"
            android:paddingEnd="0dp"
            android:paddingStart="8dp" />

After doing a bit of research on the issue i found this post: 在对这个问题做了一些研究之后我发现了这篇文章:

EditText added is not a TextInputEditText. 添加的EditText不是TextInputEditText。 Please switch to using that class instead 请切换到使用该类

let me know if it helps you. 让我知道它是否对你有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android 材质 TextInputLayout 和 TextInputEditText - Android Material TextInputLayout and TextInputEditText 如何从 TextInputLayout 或 TextInputEditText 中删除下划线 - How can remove underline from TextInputLayout or TextInputEditText 为什么 TextInputEditText 在 Android Studio 中无法转换为 TextInputLayout? - Why TextInputEditText cannot be cast to TextInputLayout in Android Studio? Android 应用程序中的“TextInputEditText 无法转换为 TextInputLayout” - “TextInputEditText cannot be cast to TextInputLayout” in Android app Android TextInputEditText/TextInputLayout 切断错误信息 - Android TextInputEditText/TextInputLayout cuts off error message 使用switch语句onClick将字符添加到EditText - Using a switch statement onClick to add a character to a EditText 使用枚举将单选框切换为复选框以编辑文本 - switch radiobox to checkbox to EditText using enum 在 Java 中使用枚举而不是 switch - Using enums instead of switch in Java 当OnFocusChangeListener应用于包装的EditText时,TextInputLayout不动画 - TextInputLayout not animating when OnFocusChangeListener applied to wrapped EditText 如何在 Android Material TextInputLayout 中将 SpannableString 设置为 EditText? - How to set a SpannableString to an EditText in an Android Material TextInputLayout?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM