4 자의 패스 코드를 읽는 안드로이드 뷰를 만들고 싶습니다. 사용자가 백 스페이스를 누를 때 이전 요소에 초점을 맞추고 싶습니다. 선택한 뷰가 비어있을 때 백 스페이스 이벤트를 캡처 할 수 있습니까?Android에서 패스 코드보기 만들기
또한 마지막 문자를 입력 한 후 키보드를 닫거나 숨기려고합니다. 가능한가?
4 자의 패스 코드를 읽는 안드로이드 뷰를 만들고 싶습니다. 사용자가 백 스페이스를 누를 때 이전 요소에 초점을 맞추고 싶습니다. 선택한 뷰가 비어있을 때 백 스페이스 이벤트를 캡처 할 수 있습니까?Android에서 패스 코드보기 만들기
또한 마지막 문자를 입력 한 후 키보드를 닫거나 숨기려고합니다. 가능한가?
시도 숨기려면
editText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_DEL){
//delete key pressed
}
return false;
}
});
통해 캡처 할 수 있습니다. 다음은 코드 스 니프입니다.
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_UP) {
TextView tv = (TextView) v;
if (keyCode == KeyEvent.KEYCODE_DEL){
if (tv.getText().toString().equalsIgnoreCase(ZeroWidthString))
moveToPrevField();
else
tv.setText(ZeroWidthString);
}
}
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
TextView tv = (TextView) v;
if (hasFocus) {
tv.setText(ZeroWidthString);
}
else if (tv.getText().toString().equalsIgnoreCase(ZeroWidthString)) {
tv.setText("");
}
}
backspace
을 캡처하려면 실제로는 android에서 삭제 키를 누릅니다. 당신은 키보드가 나는 onKey에게 & onFocusChange 기능을 덮어 및 소프트 키보드에서 이벤트를 삭제 캡처 ZeroWidthString ("\ u200B")를 사용하고이
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
일부 코드는 게시하고 어디에서 잘못 될지 보도록하십시오! – Panther
안녕 팬더 난 코드와 함께 질문을 업데이 트했습니다. clearFocus()를 호출 할 때조차도; 소프트 키보드가 닫혀 있지 않고 백 스페이스에 관해서는 어떻게 캡처 할 수 있는지 알려주세요. –