2012-02-25 15 views
3

私はいくつかシンプルな作業をしたいと思いますが、難しい作業です。 私はEditTextコントロールを持っています。私がしたいことは、キーボードの入力を止めることです。(onFocusChanged、focus = false)キーボードの状態を記録したいのですが、その言語が使用されていて、次回はキーボードが '思い出した'これまでと同じように設定してください。Android:どのキーボードが使用されているかを確認する方法

私はIMFとIMEを調べようとしましたが、これらは私にいくつかの情報しか与えませんが、 '設定'オプションがないので、これは私が必要としていません。 一方、KeyboardViewがあります - 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を持っています'InputMethodManager.setInputMethod' –

+0

このIDは、使用しているキーボードの名前ですが、このキーボードで選択した言語は使用できません:) –

関連する問題