안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
다름이 아니라 EditText 위젯이 있는 액티비티에서
소프트키보드가 떠있는 상태에서 back 키를 누르면 키보드만 없어지는데
back를 눌렀을 경우 키보드와 액티비티가 같이 닫아 버리는 방법이 없나요?
onBackPressed() 메소드는 키보드가 떠있는 상태에서 이벤트가 반응을 안하다라구요.
방법좀 가르쳐 주세요.
2010.08.31 13:08:50
아래와 같이 작성을 하는데 onKey도 안들어가 지네요. ㅜㅜ
wordInputTV.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
Log.d(TAG, "<<<<< setOnKeyListener. keyCode : "+keyCode+", event :"+event);
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (event.getKeyCode() == 66)) {
int textLen = wordInputTV.getText().toString().length();
if (textLen == 0) {
wordInputTV.setHint("단어를 입력하세요");
} else {
sendSearch(wordInputTV.getText().toString());
wordInputTV.setText(null);
}
} else if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
finish();
return true;
}
return false;
}
});
}
wordInputTV.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
Log.d(TAG, "<<<<< setOnKeyListener. keyCode : "+keyCode+", event :"+event);
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (event.getKeyCode() == 66)) {
int textLen = wordInputTV.getText().toString().length();
if (textLen == 0) {
wordInputTV.setHint("단어를 입력하세요");
} else {
sendSearch(wordInputTV.getText().toString());
wordInputTV.setText(null);
}
} else if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
finish();
return true;
}
return false;
}
});
}
if문에 다른조건들도 있다면 추가하시고용~ EditText에 onkey 리스너 달아주시고요~~
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
finish();
return true;
}
return false;
}