我尝试在 android 中开发软键盘,我想在扩展 InputmethodeServise 的类中使用 Xml 文件,以使其成为 keyboardView 的属性,并且我在布局资源中有几个 xml(input1.xml,input2.xml, input3.xml),并根据偏好调用这些 xml:
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
if(key.equals("textColor"))
{
String selectedColor = sharedPreferences.getString(key, "green");
if (selectedColor.equals("red"))
{
sw=1;
}
if (selectedColor.equals("blue"))
{
sw=2;
}
if (selectedColor.equals(" yellow"))
{
sw=3;
}
}
}
选择xml文件的方法是:
int sw;
@Override public void onCreate() {
prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
super.onCreate();
switch(sw)
{ case 1:
mInputView = (LatinKeyboardView) getLayoutInflater().inflate(R.layout.input1, null);
break;
case 2:
mInputView = (LatinKeyboardView) getLayoutInflater().inflate(R.layout.input1, null);
break;
case 3: mInputView = (LatinKeyboardView) getLayoutInflater().inflate(R.layout.input2, null);
break
default:
mInputView = (LatinKeyboardView) getLayoutInflater().inflate(R.layout.input, null);
}
}
但是当我从 prefrnceActivitey 中选择任何项目时,xml 文件未更改,这意味着变量 (sw) 未更新。我如何按偏好更新(sw)?请任何人关注我的问题