2

내 응용 프로그램 용 사용자 지정 키보드를 만들기로 결정했습니다. 나는 그것이 사용자 친숙을 해치고 있기 때문에 이것은 최선의 생각이 아니라는 것을 알고있다. 그래서 나는 Preferences에서 선택 사항을 선택하게 만들 것이다.사용자 지정 InputMethodService를 작업에 추가하는 방법은 무엇입니까?

모든 것을 완료 한 후에는 public class CustomKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener으로 완료했습니다. 나는 이것을 softInputMethod으로 추가하려고 애 쓰고있다. InputMethodManager으로 시도했지만 캐스팅 할 때 호환되지 않는 유형이 있습니다.

서비스를받지 못하게되었지만 매우 추천되지 않았기 때문에 완전히 새로운 구현이 필요했습니다.

이상적으로는 응용 프로그램의 EditText 명령 줄에 사용하는 것이 좋습니다. 그래서 그것에 직접 바인딩도 일을 할 것입니다.

시스템 입력 방법을 숨긴 후이 입력 서비스를 기본 입력 방법으로 만드는 방법은 무엇입니까?

감사합니다.



P.S. 이 작업을 쉽게 수행 할 수있는 방법이 분명하다면, 죄송합니다. Android로 전환 했는데도 여전히 배우고 있습니다.

답변

2

입력 방법을 변경할 텍스트 필드에 android : inputMethod를 사용하십시오. https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod

전체 장치에 기본 입력 방법을 설정할 수는 없지만 응용 프로그램에서 필드별로 필드를 재정의 할 수 있습니다. 액티비티 또는 애플리케이션의 테마에 대한 기본 입력 메소드를 추가하면 앱의 모든 텍스트 뷰에 대한 기본 입력 메소드가 우선 적용됩니다.

0

이 입력 서비스를 기본 서비스로 만드는 방법은 무엇입니까?

그렇지 않습니다. 입력 방법은 전체 장치 용이며 EditText은 하나가 아닙니다. 따라서 사용자는 입력 방법을 사용하도록 선택해야합니다. 인용 the documentation :

원하는 IME를 설치 한 후 사용자는 시스템 설정에서 사용할 IME를 선택하고 전체 시스템에서 사용할 수 있습니다. 한 번에 하나의 IME 만 활성화 할 수 있습니다.

+0

을)를

아니면 같은 콘텐츠 더보기 SwiftKey으로 자신의 키보드 응용 프로그램을 만들려고 노력하는 경우, 당신은이 :(읽어보십시오 말 https://developer.android.com/guide/topics/text/creating-input-method.html? 또는 시스템 설정을 통해서만 가능합니까? – user8

+0

@ user8 : "그렇다면 응용 프로그램 내에서 선택을 할 수 있습니까, 환경 설정에서 말하기"- 아니요. "아니면 시스템 설정을 통해서만 가능합니까?" -- 예. – CommonsWare

+0

그래서, 내가 제대로했는지 확인하십시오. [hacky way] (http://www.fampennings.nl/maarten/android/09keyboard/index.htm) 외에도, 앱을 통해 IME로 추가 할 수있는 다른 방법은 없습니다. 하지만 여전히 시스템 설정에서 기본값으로 선택할 수 있습니다. 권리? – user8

0

기본 키보드 (기본 InputMethodService (예 : SamsungKeyboard))가 나타나지 않도록 사용자 정의보기를 만들 수 있다고 생각합니다. 어느 키를 배치하고 onTouchListener와 상호 작용하는지. 좋아, 그럼 내가 응용 프로그램 내에서 선택을 할 수있는, 환경 설정에서