【问题标题】:Error Cannot be cast string to integer错误不能将字符串转换为整数
【发布时间】: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


【解决方案1】:

你能检查变量 vedit 的类型吗?被错误地声明为String?

【讨论】:

  • 你能从你的 logcat 发布堆栈跟踪吗?它将帮助其他人缩小问题范围
  • 实际偏好类型是什么?它是int类型的吗?看起来您正试图从首选项中获取一个 int 值作为字符串
  • 你的意思是edit的preference.xml值?我写道:android:inputType="number"
  • 不是输入类型。你能从那个 xml 中为 WifiOnOffValue 发布整个标签吗?
  • 我发布了我认为更好的整个代码。等一下
【解决方案2】:

尝试使用String value = WifiOnOffValue.getText().toString().trim() 并注销以查看value 的值是什么

【讨论】:

  • 我总是在同一行出现错误.. 31: addPreferencesFromResource(R.xml.preferences); xml 中可能有问题?
【解决方案3】:

不应该

WifiOnOffValue = (EditTextPreference) getPreferenceManager().findPreference("WifiOnOffValue");

【讨论】:

  • 真的太不可思议了!!不行!!我要疯了!
猜你喜欢
  • 1970-01-01
  • 2018-01-18
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多