2012-02-25 6 views
3

나는 간단한 작업을하고 싶습니다만, 어려운 작업입니다. EditText 컨트롤이 있습니다. 내가하고 싶은 일은 내가 키보드 입력을 멈추었을 때입니다. (onFocusChanged, focus = false) 키보드의 상태를 기록하고 싶습니다. 키보드가 사용 중이고 다음에 키보드를 기억하고 싶다면 기억하고 싶습니다. 이전과 같이 설정하십시오.Android : 어떤 키보드가 사용 중인지 확인하는 방법

저는 IMF와 IME를 살펴 보았습니다.하지만 이것들은 나에게 정보 만 제공하지만 '설정'옵션이 없기 때문에 이것이 필요한 것이 아닙니다. 반면에 KeyboardView가 있습니다 - getfunction (getKeyboard, setKeyboard)을 도울 수있는 함수가 있지만 KeyboardView를 얻는 방법을 모르겠습니다!

왜이 기능이 필요한가요? 나는 2 개의 EditText를 가지고 있는데, 각각의 언어가 다르기 때문에 입력 반복 횟수가 많아서 사용자가 직접 언어를 변경해야하므로 매우 짜증이납니다. 내가 사용한 키보드를 기억할 수만 있다면 ... :)

당신의 도움을 감사하십시오!

답변

2
public InputMethodInfo getCurrentImeInfo(){ 
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    List<InputMethodInfo> mInputMethodProperties = imm.getEnabledInputMethodList(); 

    final int n = mInputMethodProperties.size(); 
    for (int i = 0; i < n; i++) { 

     InputMethodInfo imeInfo = mInputMethodProperties.get(i); 

     if (imeInfo.getId().equals(Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD))) { 

      return imeInfo; 
     } 
    } 
    return null; 
} 
+0

이 .. 올바른 키보드를 를 다음 시간을 설정 나를 도움이되지 않습니다 그리고 난 정말 DEFAULT_INPUT_METHOD와 함께 할 필요가 무엇을하는지 이해가 안 돼요 .. –

+0

'InputMethodInfo' 사용할 수 있습니다 ID를 가지고 in InputMethodManager.setInputMethod' –

+0

이 ID는 내가 사용하는 키보드의 이름을 알려주지 만이 키보드에서 선택한 언어는 아님 :) –

관련 문제