Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理Android键盘(IME)中的配置更改?_Java_Android_Keyboard_Preferences_Ime - Fatal编程技术网

Java 如何处理Android键盘(IME)中的配置更改?

Java 如何处理Android键盘(IME)中的配置更改?,java,android,keyboard,preferences,ime,Java,Android,Keyboard,Preferences,Ime,我已经按照提供的文档设计了新的(相对简单的)键盘。在这一点上,我被配置更改(如主题、文本大小或有点复杂的东西)所困扰,这需要IME重新创建自己 public class ImePreferences extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { @Override protected void onCreate(Bundle savedInst

我已经按照提供的文档设计了新的(相对简单的)键盘。在这一点上,我被配置更改(如主题、文本大小或有点复杂的东西)所困扰,这需要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,但没有效果

是否有一些技巧可以在不事先参考的情况下获得package keyboard的实例?或者我错过了一些简单的东西

任何提示都将不胜感激

解决方案:

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

    return mInputView;
}


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

    setInputView(onCreateInputView());

    ...
}
解决方案:

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

    return mInputView;
}


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

    setInputView(onCreateInputView());

    ...
}