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

[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은 사용자 입력에 대한 오류 검증과 시각적 피드백을 제공하기에 효과적인 기능입니다.

 

시연 영상입니다.

 

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.