editText.setOnEditorActionListener { textView, action, keyEvent ->
var handled = false
if (action == EditorInfo.IME_ACTION_DONE) {
Log.d("성공",editText.text.toString())
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(editText.windowToken, 0)
handled = true
}
handled
}
test 프로젝트에서 해본 결과 잘된다. 문제는 이걸 기존의 프로젝트에 옮기는 건데
일단 첫 번째는 editText에
등록 표시가 이게 아니었다.
android:imeOptions="actionDone"
이렇게 해주어야 등록 표시로 변경
큰 문제는 코드인데
일단 등록한 내용을 서버로 전달하고 키워드 데이터베이스에 넣어주고 등등 거쳐야 하는데
그래서 기존에 있던 코드를 그대로 또 복붙 하면 너무 더러워지니 함수로 만들어서 적용하려 했는데 안되네??
서버와 연동에 문제가 생기네? 그래서 일단은 그냥 복붙... 하니 잘된다. 또 하나는
val editText = view.findViewById<TextView>(R.id.edit_keyword)
editText.setOnEditorActionListener { textView, action, keyEvent ->
var handled = false
val edittext = view.findViewById<TextView>(R.id.edit_keyword).text.toString()
여기 editText변수를 안과 밖으로 두 개 설정해야 한다. 밖에서만 하고 안을 그대로 사용하면 등록할 때 editText가 clear 되도록 해놓아서 키워드가 빈 값으로 들어간다.
일단 이슈는 처리했는데 좀 더 코드를 간결하게 할 수 있는데.. 이게 233줄을 차지할 코드가 아닌데;