# EditText

RecyclerView 내부 EditText 간 텍스트 실시간 반영 문제 해결
들어가며 이전 포스트에서 제시한 한번에 RecyclerView 내부의 EditText의 텍스트를 실시간으로 반영하는 기능(이하 실시간 연결 기능)이 작동하지 않는 문제를 코루틴을 사용하여 해결했다. 문제 상황 요약 로그를 여러개 만들어 상황을 확인해보았다. 코드 상 함수 호출 순서는 아래와 같지만 내부의 이 온클릭 함수를 종료하고 실행되는 상황이다. 그렇기 때문에 이후 RecyclerView의 bind함수가 실행되어 이전에 실행한 의 의미가 없어졌다. 해결 방안 해결 방안을

EditText 실시간 반영 문제 - TextWatcher, RecyclerView
들어가며 만다라트는 중앙 매트릭스의 주변 칸과 주변 매트릭스의 중앙 칸의 텍스트가 같아야한다. 여기서 EidtText를 연결하려고 하는데 문제가 발생했다 용어 정리 문제 문제 상황 모든 칸들은 EditText로 이루어져 있고 수정버튼을 누르기 전까진 포커스가 되지 않는다. 수정버튼을 누르면 모든 칸에 Focusable을 주고 수정이 가능하게 된다. 여기에서 중앙 매트릭스의 주변 칸과 주변 매트릭스의 중앙 칸의 텍스트가 실시간으로 변하는 기능(이하 실시간 연결 기능)을 넣고 싶다. 해당 기능은 TextWatcher를 생성하고 부여하는 과정으로 구현할 수 있으나 어째서인가 원하는대로 진행되지 않는다. <img src="https://velog.velcdn.com/

[Android/Kotlin] 커스텀 드롭다운 구현하기
✍🏻 요구사항 분석 아래와 같이 카테고리 란을 클릭할 때, 각 카테고리가 펼쳐지는 드롭다운 형태의 뷰를 구현해야했다. 안 펼쳤을 때 | 펼쳤을 때 ---|---| 드롭다운 자체를 써 본 적이 없지만, 특히 이런 경우에는 어떻게 구현해야할지 감이 잘 오지 않았다. 결국 나는 ListView에 데이터를 넣어서, 클릭했을 때 접었다 펴는 방법을 생각해보았다. 항상 리사이클러뷰 쓴다고 리스트뷰도 한 번도 쓴 적이 없었는데, 이번에는 아이템(카테고리)의 개수가 정해져 있었기에 굳이 재사용이 필요 없겠다 싶어 한 번 써보려고 했다. 하지

[Android/Kotlin] 여러 EditText 텍스트 입력 체크 및 버튼 활성화
✍🏻 요구사항 분석 내가 구현하고자 한 것은 여러 EditText의 값이 모두 채워지면 하단 버튼이 활성화되도록 하는 것이었다. 하나의 EditText로 버튼을 활성화하는 자료는 많이 찾았지만, 여러 EditText가 모두 채워져야 버튼이 활성화되는 글은 찾지 못했다. 그러던 와중, 활용하면 좋을 것 같은 글을 발견했다. https://ddolcat.tistory.com/576 해당 글은 EditWatcher를 사용하는 내부 class를 사용하여 EditText를 추적하는 내용을 담고있었고, 이때 여러 EditText에 EditWatcher를 단다면 내가 원하는 바를 이룰 수 있을 것 같았다. 구현 코드는 아래와 같다. 💻 구현 코드 1. EditWatcher 설정 2. EditText에 위의 EditWatcher 달기 3 . EditText의 값에 따라 버튼 활성화 여부 체크 버튼 활성화를 하
Button, EditText
Button Button : 유저 이벤트 처리를 위한 View CheckBox : 다중 선택 RadioButton : 단일 선택, 동일 RadioGroup 내에서 하나만 선택이 가능 EditText android:lines – EditText 가 화면에 출력될 라인수 android:maxLines – 여러줄 입력을 위해 늘어나는 최대 라인수 android:inputType – 키보드 제어, 키보드 모드, 한줄 입력 제어

3장 - 기본 위젯
1. 사용자 인터페이스의 개요 사용자 인터페이스 (UI : User Interface) 뷰그룹 (= layout(위젯)) 다른 뷰들을 담는 컨테이너 기능 ViewGroup 클래스에서 상속받아서 작성됨 뷰 (= Control(컨트롤), Widget(위젯)) 기초적인 빌딩 블록 버튼, 텍스트 필드, 체크 박스 등 View 클래스를 상속받아서 작성됨 UI를 작성하는 절차 뷰그룹(레이아웃)을 생성 필요한 뷰들을 추가 SetContentView() 호출을 통해 UI를 액티비티 화면으로 설정 UI를 작성하는 다양한 방법 XML로 사용자 인터페이스 기술 코드로 사용자 인터페이스 작성 비주얼 도구로 사용자 인터페이스 작성 LinearLayout : 선형 레이아웃 레이아웃 안에 다른 레이아웃을 넣을 수 있음 XML로 화면을 기술하는 방법의 장점 코드와 화면 디자인이 완벽하게 분리 코드

TextView 활용
**오늘 기초 뷰를 활요하여 실습할 결과 화면이다. ** ◼︎ 레이아웃 XML ■ TextView 앱을 개발할 때 가장 많이 사용하는 뷰로, 문자열을 화면에 출력한다. ∙ text: 화면에 출력할 문자열을 지정하는 속성 ∙ typeface: 화면에 출력할 문자열의 폰트를 지정하는 속성 ∙ textStyle: 문자열 효과로 normal(default), bold, italic 중 하나를 입력한다. ∙ textColor: 문자열의 색상을 16진수 RGB 포맷으로 지정할 때 사용한다. ∙ textSize: 문자열의 폰트 크기를 지정할 때 사용한다. ∙ autoLink: TextView의 문자열을 분석해 자동으로 브라우저, 이메일 앱, 전화 앱이 실행된다. ∙ maxLines: Text
# TextView의 상태 저장
발단 A화면에서 setText를 이용하여 EditText2개와 TextView3개의 필드에 각각의 값들을 입력하고 B화면으로 넘어간 후에 다시 A화면으로 돌아오는 경우가 있었습니다. 이때 EditText에 입력된 값들은 그대로 남아있었지만, TextView에 입력한 값들은 전부 사라지는 경우가 생겼습니다. 디버깅 각각의 View에 입력하는 값이 전부 달랐기 때문에 2가지 가정을 세웠습니다. TextView에 해당하는 데이터들이 들어오지 않는다. onViewCreated에서 EditText에 관련된 값들만 setText를 다시 해준다. 두가지에 대한 테스트를 진행한 결과 모든 데이터가 정상적으로 들어왔고 setText문제도 없었다. 값들의 차이점을 찾아보니 EditText와 TextView의 차이점이 있었다. 결론 View의 내부 상태를 복원할 때, TextView의 text가 초기화되지만 EditText의 text는 유지된다. 그렇다면 두

[Android/Kotlin] IP 주소 입력 EditText 구현하기
💌 [안드로이드/코틀린] IP 주소 입력 EditText 구현하기 EditText 1개에 숫자와 . 입력 가능한 문자 타입 제한하기 inputType 을 number로 설정하고 digits 에 "1234567890." 로 EditText 에 입력될 수 있는 문자를 지정한다 이렇게 구현하면 아이피를 입력받는 하나의 에디트 텍스트가 구현 가능한데 예외 상황을 발견했다 (Android Galaxy Tab S3 : SM-T820 기종) 키패드에 .이 없어서 입력이 불가능했다 ㅠ_ㅠ 그래서 IP 입력 창

[Android Java] 백버튼을 눌러서 EditText 포커스 해제하기
백버튼을 눌러서 EditText포커스 해제하기 저번 포스팅에서 눈버튼을 눌렀을때 비밀번호를 표시를 했었는데 문제가 하나 있었다 엔터키가 눌렀을때는 setOnKeyListener 를 사용하여서 키보드를 내리고 포커스를 지우는 과정을 진행을 했다. 하지만 위 조건에 백버튼이 눌렀을때의 조건을 추가 했는데 동작이 되지 않는다는 문제가 있었다 이번 포스팅에선 이 문제를 작성하도록 하겠다. 해결전 동작 gif 1.setOnKeyListener 백버튼 누름 조건 추가 setOnKeyListener 안에 백버튼을 눌

EditText 버튼을 눌러서 패스워드 표시하기
에딧텍스트를 버튼을 눌러서 패스워드 표시하기 이번 포스팅에서는 버튼을 눌러서 패스워드를 보이게 하는 효과를 얻고 싶을때는 구글링을 해봤는데 자료가 많이 없어서 포스팅을 직접 해본다! textinputlayout.xml 위와 같이 뷰를 작성하게 되면 스크롤뷰 안에 에딧텍스트와 이미지뷰가 나열된 상태이다 main 액티비티 에딧 텍스트와 패스워드를 지정한 id로 가지고 온다 눈버튼에 터치 리스너를 붙여주고 모션이벤트에 ACTIONDOWN-누를때, ACTIONUP-땔때 를 처리한다 이상태로 실행하게 되면 아래와 같이 동작하게 된다 
안드로이드 동적폰트설정
동적폰트변경 이전 포스팅에서 xml상에서 폰트를 변경시키는 방법을 포스팅했다 이번 포스팅에서는 코드상에서 폰트를 설정함으로써 동적으로 폰트를 설정하는 방법을 소개하겠다 이 포스팅을 작성하게 된 이유... (보통 구글링을 하면 폰트를 변경하는 방법을 치면 xml상에서 정적으로 변경하는 방법이 많이 알려져 있는데 이방법을 찾고 적용하는데 많이 해맸던 기억이 있다... 다들 이글을 봤다면 더이상 구글링하면서 왜 폰트가 적용이 되지 않는데!!! 라면서 화내는일이 없길 바랍니다... :) 코드상에서 폰트변경 핵심코드 > Typeface typeFace = Typeface.createFromAsset(getAssets(), "nanumsquare.ttf"); etx1.setTypeface(typeFace); 1.font파일을 assets폴더에 저장하기 일단 가장먼저 font파일을 저장하는 위치가 다르다는 것이 중요하다 왜 이 위치에 저장하는지는 후에 코드를

안드로이드 폰트 적용
폰트변경 위젯에 택스트를 사용할때 폰트를 설정하고자 할때 다음과 같이 변경하면 된다 xml상에서 폰트변경 > android:fontFamily="@font/font_nanumsquare" 위 속성을 폰트를 적용하고자 하는 텍스트뷰나 에딧텍스트 위젯에 추가하면 된다 그전에 폰트를 안드로이드 스튜디오에 추가하고 폰트 리소스 파일을 정의해야한다 그과정은 다음과 같다 필자는 nanumsquare폰트를 추가하는 과정이다 1.인터넷에서 원하는 폰트파일(## 2.다운로드 받은 파일을 res/font 파일내에 위치시킨다 font폴더를 추가시키는 과정은 다음과 같다 
[Android] EditText 를 Reactive 하게!
🤚🏻 Reactive X, RxJava 등 반응형 프로그래밍에 대한 사전 지식이 필요한 포스팅입니다. 예제 코드는 모두 킹갓 언어 'Kotlin' 을 기준으로 합니다. 사용자의 입력을 받는 컴포넌트, EditText 안드로이드를 개발하는 우리는 사용자들에게 무언가를 검색하는 기능을 제공해주기 위해 EditText 라는 View 위젯을 사용한다. EditText 는 하나의 입력 상자로, 사용자가 키보드로 두드린 텍스트 입력값을 갖고 있게 된다. 따라서 보통 폼 입력 혹은 검색 기능을 위해 사용된다. 그럼 만약 검색 기능을 구현하고 싶다 할 때, 크게 두 가지 방법을 떠올릴 수 있다. >1. 검색 버튼을 통한 수동 검색 사용자가 입력한 키워드로 자동 검색 첫 번째 '검색 버튼을 통한 수동 검색' 은 흔히 볼 수 있는 구조다. 사용자가 검색어를 다 입력하고, 보통은

안드로이드 EditText 테두리 만들기
앱을 만드는 중 사용자가 메모를 할 수 있는 공간이 필요했습니다. EditText를 가져와 보았지만, 테두리가 없어서 그런지 전혀 메모 공간의 느낌이 나지 않았습니다. 오늘은 EditText의 테두리를 표시하는 방법을 포스팅해보겠습니다. > 먼저, drawable 폴더에서 우클릭 -> new -> Drawable Resource File 클릭! > 임의의 파일이름을 정하여 xml 파일을 만들고 코드 입력 본 예제에서는 파일 이름을 memo_border 로 만들었습니다. "#000000"은 블랙을 표시합니다. EditText의 경계선을 블랙 컬러로 지정하였습니다. "#ffffff"는 화이트 색상입니다. 바탕색으로 화이트를 지정하였습니다. 물론 컬러는 임의로 커스텀 할 수 있습니다
[Android] Show/Hide Password in EditText
EditText 비밀번호 보이기/숨기기, ImageView 클릭 시 이미지 변경(on/off) > <androidx.appcompat.widget.AppCompatEditText android:id="@+id/loginetpw" android:layoutwidth="matchparent" android:la