2017-02-02 23 views
1

新しい(比較的シンプルな)キーボードを設計するためのドキュメントを提供したAndroid sampleに従っています。この時点で私は構成変更(テーマ、textSize、複雑なものなど)に悩まされています。これはIMEを再作成する必要があります。Androidキーボード(IME)の設定変更を処理するにはどうすればよいですか?

public class ImePreferences extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     setTheme(R.style.AppTheme_WithActionBar); 
     super.onCreate(savedInstanceState); 
     PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); 
    } 

    @Override 
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { 
     // reload ime 
     Log.d("anbani", "Stopping service " + String.valueOf(stopService(new Intent(this, SoftKeyboard.class)))); 
     Log.d("anbani", "prefs changed"); 
    } 



    ... 
} 

これは役に立ちません。 StopServiceの値はtrueが返されますが、効果はありません。

パッケージキーボードのインスタンスを取得するためのトリックは、事前に参照する必要はありませんか?または、ここに何か簡単なものがありませんか?

ヒントをお聞かせください。

答えて

0

ソリューション:

@Override public View onCreateInputView() { 
    // load preferences 

    return mInputView; 
} 


@Override public void onStartInputView(EditorInfo attribute, boolean restarting) { 
    super.onStartInputView(attribute, restarting); 

    setInputView(onCreateInputView()); 

    ... 
} 
関連する問題