사용자가 edittext를 클릭하고 입력 한 문자를 컴퓨터에 입력하는 원격 키보드의 역할을하는 응용 프로그램을 만들고있었습니다.'Enter key'키지 않음 TextWatcher
TextWatcher를 사용하여 다양한 알파벳 및 숫자를 감지하여이를 내 서버로 성공적으로 보냈습니다.
사용자가 Enter 키를 누르면 문제가 발생합니다. 이것은 또한 TextWatcher를 트리거합니다. 그리고 내가 최근에 입력 한 변경 사항을 보내고 있기 때문에 서버 측에 오류가 나타납니다. 내가이 무슨 짓을했는지 솔루션으로
는 onkeylistener 다음뿐만 아니라 행동과 를 키 입력하고 수행 감지 어느 onkeylistener을 설정을 소비하지만, 불행히도 그 경우에도 첫 번째 textwatcher가 트리거됩니다합니다.
private TextWatcher watcher = new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(count>0){
out.println(":"+s.subSequence(start, start+count).toString());
}
}
.
.
.
문제는 그것이 TextWatcher의 onTextChanged를 발생 키뿐만 아니라 onkeylistener를 입력 눌러에 : 여기
내 onkeylistener 코드 TextWatcher의keyboard.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_ENTER&&event.getAction()==KeyEvent.ACTION_UP){
out.println("enter");
return true;
}
return false;
}
});
의 코드입니다. 반면에 나는 오직 청취하는 키 리스너 만 원한다. 알파벳, 숫자, 기호 등의 경우에만 Textwatcher를 실행하고 싶습니다.
또한 문자를 감지하고 전송하는 다른 방법을 제안 할 수 있다면 (소프트) 좋을 것입니다.
또한 cond를 넣어 보았습니다. TextWatcher 내에서 최근 변경 사항이 영숫자가 아닌 문자인지 확인합니다. 그럴 경우 out.println()을 사용하지 마십시오. 그러나 그것은 또한 작동하지 않습니다. 그것은 여전히 엔터 키를 감지하고 if 조건을 입력하고 out.println()을 실행합니다. – PrateekArora
좋아, 내가 해결했다고 생각해. Textwatcher에 다음 문을 추가합니다.if (s.toString(). substring (start) .contains ("\ n")) 마지막으로 입력 한 키가 'enter'이면 입력 한 다음 u 너 뭐든지 할 수있어. – PrateekArora