꾸준히 안타치기
가입 체크, 이메일, 이름, 비번 본문
반응형
activityMain.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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
tools:context="com.codinginflow.textinputlayoutexample.MainActivity">
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Email"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:counterEnabled="true"
app:counterMaxLength="15"
app:errorEnabled="true">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:inputType="text" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="confirmInput"
android:text="Confirm" />
</LinearLayout>
Mainactivity.java
package com.codinginflow.textinputlayoutexample;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Patterns;
import android.view.View;
import android.widget.Toast;
import java.util.regex.Pattern;
public class MainActivity extends AppCompatActivity {
private static final Pattern PASSWORD_PATTERN =
Pattern.compile("^" +
//"(?=.*[0-9])" + //at least 1 digit
//"(?=.*[a-z])" + //at least 1 lower case letter
//"(?=.*[A-Z])" + //at least 1 upper case letter
"(?=.*[a-zA-Z])" + //any letter
"(?=.*[@#$%^&+=])" + //at least 1 special character
"(?=\\S+$)" + //no white spaces
".{4,}" + //at least 4 characters
"$");
private TextInputLayout textInputEmail;
private TextInputLayout textInputUsername;
private TextInputLayout textInputPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textInputEmail = findViewById(R.id.text_input_email);
textInputUsername = findViewById(R.id.text_input_username);
textInputPassword = findViewById(R.id.text_input_password);
}
private boolean validateEmail() {
String emailInput = textInputEmail.getEditText().getText().toString().trim();
if (emailInput.isEmpty()) {
textInputEmail.setError("Field can't be empty");
return false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(emailInput).matches()) {
textInputEmail.setError("Please enter a valid email address");
return false;
} else {
textInputEmail.setError(null);
return true;
}
}
private boolean validateUsername() {
String usernameInput = textInputUsername.getEditText().getText().toString().trim();
if (usernameInput.isEmpty()) {
textInputUsername.setError("Field can't be empty");
return false;
} else if (usernameInput.length() > 15) {
textInputUsername.setError("Username too long");
return false;
} else {
textInputUsername.setError(null);
return true;
}
}
private boolean validatePassword() {
String passwordInput = textInputPassword.getEditText().getText().toString().trim();
if (passwordInput.isEmpty()) {
textInputPassword.setError("Field can't be empty");
return false;
} else if (!PASSWORD_PATTERN.matcher(passwordInput).matches()) {
textInputPassword.setError("Password too weak");
return false;
} else {
textInputPassword.setError(null);
return true;
}
}
public void confirmInput(View v) {
if (!validateEmail() | !validateUsername() | !validatePassword()) {
return;
}
String input = "Email: " + textInputEmail.getEditText().getText().toString();
input += "\n";
input += "Username: " + textInputUsername.getEditText().getText().toString();
input += "\n";
input += "Password: " + textInputPassword.getEditText().getText().toString();
Toast.makeText(this, input, Toast.LENGTH_SHORT).show();
}
}
반응형
'Android _ 서버연동_채팅 > Android - UI' 카테고리의 다른 글
ssh 키 발급 mac (0) | 2021.06.22 |
---|---|
팝업 메뉴 /popupmenu (0) | 2021.06.16 |
리사이클러뷰 (0) | 2021.02.24 |
Bottom popup / color 선택 변경하기 / 노트 (0) | 2021.02.24 |
카카오톡 연동 API사용 (0) | 2021.02.22 |
Comments