본문 바로가기
반응형

공부기록/안드로이드14

[안드로이드] 키보드 show&hide 이벤트 발생시키기 안드로이드 soft keyboard가 보이거나 숨겨졌을 때 이벤트를 발생시키고 싶을 경우 키보드 이벤트를 감지하면 되겠거니 싶었지만 아래 그림과 같이 키보드 아래 버튼이나 뒤로가기를 눌렀을 때 키보드 이벤트 발생 안 한다. stackoverflow 에 나와 있는 그대로 사용했더니 해결! stackoverflow.com/questions/4312319/how-to-capture-the-virtual-keyboard-show-hide-event-in-android How to capture the "virtual keyboard show/hide" event in Android? I would like to alter the layout based on whether the virtual keyboard i.. 2021. 4. 12.
[안드로이드] 웹뷰에서 파일 업로드할 때 에러, FileProvider에 대해 알아보기 java.lang.IllegalArgumentException: Failed to find configured root that contains ... 이런 에러 보신 적 있으신가요? 이게 다 FileProvider path 설정 때문입니다. 에러에 대해 설명하기 앞서 일단, Android developers Documentation 설명을 제가 이해한 대로 적어보겠습니다. FileProvider는 ContentProvider의 하위 클래스입니다. 보안을 위해서, file Uri 대신 content Uri를 사용합니다. contentUri는 파일을 읽고 쓰는데 임시 접근 권한을 주고, content Uri가 포함된 Intent를 만들 때, 권한을 주는 Flag를 설정할 수 있습니다. MainActivit.. 2021. 3. 16.
[안드로이드] 뒤로가기(backpressed) 안되는 경우 editText에 setOnKeyListener를 통해 엔터키 받는 이벤트를 넣었다. 근데 editText에 포커스가 가있을 때 뒤로가기 버튼이 안 먹는 것이 아닌가... 알고보니 오버라이딩한 onKey 함수가 backpressed 이벤트를 가져가고 있었다. 따라서 onKey 함수에 다음과 같이 else if(keyCode==KeyEvent.KEYCODE_BACK) onBackPressed(); 를 추가해주도록 하자(뒤로가기 버튼을 눌렀을 때 onBackPressed 함수를 호출해줌) commentEditText.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent eve.. 2021. 1. 28.
[안드로이드] setOnKeyListener 엔터(두 번 실행되는 경우) 엔터키 입력받을 때 액션을 취하고 싶은데 조건문에 keyCode==KeyEvent.KEYCODE_ENTER 만 쓰면 실행이 두 번 된다. 엔터키를 누르면 ACTION_UP과 ACTION_DOWN이 같이 실행된다. 따라서 한 번만 실행하기 위해선 keyCode==KeyEvent.KEYCODE_ENTER && event.getAction()==KeyEvent.ACTION_UP 이런식으로 조건을 하나 더 붙여줘야 한다. commentEditText.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_ENTER.. 2021. 1. 28.
728x90
반응형