我一直关注文档提供的Android sample来设计新的(相对简单的)键盘。在这一点上,我坚持配置更改(如主题,textSize或位复杂的东西),这需要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 :(得分:0)
解决方案:
@Override public View onCreateInputView() {
// load preferences
return mInputView;
}
@Override public void onStartInputView(EditorInfo attribute, boolean restarting) {
super.onStartInputView(attribute, restarting);
setInputView(onCreateInputView());
...
}