가상 키보드에 표시되는 기본 '완료'라벨을 변경하고 싶습니다. 여기에 내가 운이없이 시도한 작업은 다음과 같습니다Android : setImeActionLabel을 사용하는 방법을 모르겠습니다.
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
mSearchInput.setImeActionLabel(getString(R.string.search_action_label), EditorInfo.IME_ACTION_DONE);
I 그러나이와, 그 버튼에 클릭을 처리 할 오전 수 :
mSearchInput.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
performSearch();
return true;
}
return false;
}
});
내가 방법으로 우둔 해요 나는 그 버튼의 라벨을 지금 바꿀 수있다.
궁금한 점이 있습니다. 에뮬레이터에서 가로로 전환하면 소프트 키보드가 더 이상 나타나지 않습니다. 또한 Messaging 애플리케이션에서 "완료"버튼 대신 스마일리 (":-)"를 입력하는 것으로 나타났습니다. 그것은 사용자 정의 키보드 레이아웃을 사용합니까, 아니면 무엇입니까? 팁을 주셔서 감사합니다. – Felix
에뮬레이터가 가로 모드에서 노출되는 실제 키보드를 시뮬레이트하기 때문에 소프트 키보드가 나타나지 않습니다 (마치 열린 상태에서 소프트 키보드가 G1에 나타나지 않는 것처럼). 'hw.keyboard = no'를 추가하여 AVD에 대한 config.ini 파일을 수정하여 키보드를 비활성화 할 수 있습니다. 메시징 응용 프로그램에 대해서는 방금 소스를 확인한 후 스마일리가'inputType = "textShortMessage"의 부산물이고 "보내기"버튼이 없다는 것은 imeOptions = " flagNoEnterAction "',하지만 실제로 테스트하지 않았습니다. 터치 입력이 두 플래그를 모두 무시하는 것 같습니다. – mernen
원래 질문의 코드에서이 "OR"코드를 추가하면 물리적 키보드의 "return"버튼을 설명 할 수 있습니다. if (actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) – CircuitBreaker716