저번에 썼던 글인 'activity와 adapter 간의 상호작용'의 맨 마지막에 참고로 썼던 내용인데요,
키보드가 입력도 안되고 사라져서 열받았던게 생각나서 따로 글로 써보려고 합니다.
editText에 input type number로 입력을 하려고 누르면 아래의 error가 뜨면서 키보드가 사라지는 경우입니다.
W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper: getSelectedText on inactive InputConnection
W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
EditText에 TextWatcher를 추가했던 Adapter Class 코드입니다.
etWishPrice.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (s.toString().replace(" ", "") != "") {
wish.price = Integer.parseInt(s.toString())
}
total = 0
for (w in wishList) {
if (w.price != null) {
total += w.price!!
}
}
calTotal.cal(total.toString())
}
})
price입력 칸을 누르면 숫자키보드가 사라지고 다른 곳으로 커서가 이동했는데요,
TextChangedListener가 Activity Class에 있는 total에 영향을 주면서 생기는 문제인 것 같습니다.
해결방법은 키보드 속성을 변경하는 것입니다.
키보드가 레이아웃에 영향을 주지 않게 만드는 속성입니다.
AndroidManifest.xml 파일에서 activity를 찾아 다음 코드를 추가하시면 됩니다.
android:windowSoftInputMode="adjustPan"
✨키보드 속성 참고 블로그✨ : mixup.tistory.com/115
<activity android:name=".WishActivity"
android:windowSoftInputMode="adjustPan"/>
<해결 후>
가격 입력 칸에 커서를 두면 숫자 키보드가 나오고, 키보드를 내려야 total이 보이게 변경되었습니다.
'Android App 개발' 카테고리의 다른 글
워크넷 Open API를 사용하여 Android Studio로 앱 만들기 (1) | 2021.03.26 |
---|---|
[kotlin] Android Studio 인터페이스 사용 - 여러 Class내에서 같은 함수 공유(Layout 배경색 바꾸기) (0) | 2021.03.23 |
[kotlin] Android Studio 인터페이스 사용 - Adapter와 Activity간의 상호작용 (어댑터뷰 항목의 가격 계산, 총액 구하기) (0) | 2021.03.23 |
DAMDA, 기록하고 싶은 모든 것을 담다 - 안드로이드 메모 앱 (0) | 2021.03.22 |