본문 바로가기
안드로이드 자바

[JAVA][Android] TextInputLayout 사용해서 EditText에 오류메시지 등 표시하기

by teamnova 2024. 10. 15.
728x90

안녕하세요

 

오늘은 TextInputLayout 을 사용해서, EditText에 힌트나 오류메시지 등을 표시하는 기능을 알아보겠습니다.

TextInputLayout 을 사용하면, 입력필드에 추가적인 UI를 효과적으로 나타낼 수 있습니다.

 

우선 Material Design을 의존성에 추가해야합니다.

 

build.gradle(Module:app) 파일에 의존성을 추가하도록 하겠습니다.

dependencies {
    implementation("com.google.android.material:material:1.9.0")
}

 

 

전체 코드입니다.

 

MainActivity.java

public class MainActivity extends AppCompatActivity {

  private TextInputLayout textInputLayout;
  private TextInputEditText textInputEditText;
  private Button btnSubmit;

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

    textInputLayout = findViewById(R.id.textInputLayout);
    textInputEditText = findViewById(R.id.textInputEditText);
    btnSubmit = findViewById(R.id.btnSubmit);

    btnSubmit.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (TextUtils.isEmpty(textInputEditText.getText())) {
          textInputLayout.setError("필수 입력 항목입니다.");
        } else {
          textInputLayout.setError(null); // 오류 메시지 제거
          textInputLayout.setHelperText("확인되었습니다");
        }
      }
    });

  }
}

 

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/textInputLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="아이디">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/textInputEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </com.google.android.material.textfield.TextInputLayout>

    <Button
        android:id="@+id/btnSubmit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="확인"
        android:layout_marginTop="20dp" />
</LinearLayout>

 

 

TextInputLayout 을 사용해 EditText 에 힌트를 추가했습니다.

그리고 setError 메소드를 사용해, 사용자가 EditText에 값을 입력하지 않으면, 오류메시지를 표시하도록 했습니다.

 

이처럼 TextInputLayout은 사용자 입력에 대한 오류 검증과 시각적 피드백을 제공하기에 효과적인 기능입니다.

 

시연 영상입니다.