안드로이드 자바
[JAVA][Android] TextInputLayout 사용해서 EditText에 오류메시지 등 표시하기
teamnova
2024. 10. 15. 12:00
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은 사용자 입력에 대한 오류 검증과 시각적 피드백을 제공하기에 효과적인 기능입니다.
시연 영상입니다.