【发布时间】:2014-04-29 07:10:38
【问题描述】:
我无法将 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 似乎存储了错误的值..现在我可以启动应用程序并且似乎运行良好..对我来说解决方案只是卸载并重新安装应用程序..太奇怪了。还是谢谢大家
【问题讨论】:
-
哪一行出错了?您的错误与您在 try 块中编写的代码相反
-
integer.parseInt(value) 值不代表任何整数,例如。如果 value 是 100,12,30 之类的东西,它会起作用,但如果它是 100,12 它会抛出异常。均值不代表任何整数。
-
31,这个:
addPreferencesFromResource(R.xml.preferences);当我声明布局时 -
在转换为
Integer之前尝试对value使用trim()函数。可能有一些尾随或前导空格。如果 value 仅包含数字,它将正常工作。 -
首先打印值究竟是什么。如果它是一些随机字符串,它将抛出异常。但是,如果它是整数的正确字符串表示形式,它将正常工作。所以请先打印值。
标签: java android parseint edittextpreference