반응형
EditText에 리스너( addTextChangedListener )를 추가하여 입력된 글자 개수를 표시합니다.
해당 정보는 안드로이드 개발자 사이트를 참고 부탁드립니다.
https://developer.android.com/reference/android/text/TextWatcher
<실행 화면> 입력할 때마다 글자 수를 알 수 있으며, 지워도 바로 글자 수가 바뀝니다. 그리고 Enter키는 적용 안됩니다.
이제 예제를 작성하겠습니다.
activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:background="#DADAFF"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:text="ID :"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="@+id/et_input"
app:layout_constraintEnd_toStartOf="@+id/et_input"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/et_input" />
<EditText
android:id="@+id/et_input"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="아이디를 입력해주세요."
app:layout_constraintEnd_toStartOf="@+id/tv_input_length"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/textView"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_input_length"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:text="0글자"
android:layout_marginHorizontal="8dp"
app:layout_constraintBottom_toBottomOf="@+id/et_input"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/et_input" />
|
이제 MainActivity.java를 작성하겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package com.example.ex_edittext_changetext;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText et_input;
TextView tv_input_length;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_input=findViewById(R.id.et_input);
tv_input_length=findViewById(R.id.tv_input_length);
//EditText 리스너 (입력시 반응)
et_input.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
tv_input_length.setText(s.length()+"글자"); //글자수 TextView에 보여주기.
}
});
//EditText Enter key 방지
et_input.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode==event.KEYCODE_ENTER) return true;
return false;
}
});
}// onCreate()..
}// MainActivityc Class..
|
<실행 화면> 입력할 때마다 글자 수를 알 수 있으며, 지워도 바로 글자 수가 바뀝니다. 그리고 Enter키는 적용 안됩니다.
반응형
'안드로이드 > 개발자 일상' 카테고리의 다른 글
안드로이드 CircleProgressBar (원형 프로그래스 바, 라이브러리 사용) (13) | 2020.03.29 |
---|---|
안드로이드 EditText (빨간 테두리 색 적용, 이메일 형식 체크) (4) | 2020.03.29 |
안드로이드 실제 디바이스 사이즈 구하기 (xml에 dp값) (8) | 2020.03.28 |
안드로이드 Splash (로딩화면) (2) | 2020.03.27 |
안드로이드 NetworkCallback(실시간 네트워크 체크) (3) | 2020.03.25 |
댓글