我无法将EditTextPreference值从string更改为int。我这样做了:
WifiOnOffValue = (EditTextPreference) findPreference("WifiOnOffValue");
String value = WifiOnOffValue.getText().toString();
if(value != null && !value.isEmpty()) {
try {
vedit = Integer.parseInt(value);
}
catch (NumberFormatException ex) {
ex.printStackTrace();
vedit = 0;
}
}
我收到错误java.lang.Integer cannot be cast to java lang.String
...我需要将整个EditTextPreference的值转换为。感谢
日志:
代码:
//-- Edittext Wifi
WifiOnOffValue = (EditTextPreference) findPreference("WifiOnOffValue");
String value = WifiOnOffValue.getText().toString().trim();
if(value!=null && !value.isEmpty()){
try{
vedit = Integer.parseInt(value);
} catch (NumberFormatException ex) {
ex.printStackTrace();
vedit=0;
}
}
解决了 ..这是解决方案:ClassCastException in PreferenceActivity似乎存储了错误的值..现在我可以启动应用程序并且看起来很顺利..我的解决方案就是卸载并重新安装应用程序..太奇怪了。无论如何,感谢大家
答案 0 :(得分:0)
你能检查变量vedit的类型吗?错误地声明为String?
答案 1 :(得分:0)
尝试使用String value = WifiOnOffValue.getText().toString().trim()
并注销以查看value
的值是什么
答案 2 :(得分:0)
应该
WifiOnOffValue = (EditTextPreference) getPreferenceManager().findPreference("WifiOnOffValue");