Android - 将字符串转换为long值

时间:2012-07-28 09:29:44

标签: android android-preferences string-conversion

我正在创建一个相当简单的Android应用程序,它基本上是一个计时器,我试图让它可以在设置中设置计时器长度,然后使用首选项检索值并将其设置为计时器长度。我可以从首选项中检索值并只显示它。

但是当我尝试使用Long.parseLong(string)或Long.valueOf(String)和Long.valueOf(Int)将字符串值(即1)转换为long值时,我没有收到任何错误在代码中但是当我尝试启动应用程序时,它会强制关闭并且错误日志表明它是由NumberFormatException引起的,这是我正在使用的代码部分,如果我删除了说Long.ParseLong的行。其他一切正常。

        private long interval =    1000 ;
        private long startTime = 30000;



        /** Called when the activity is first created. */
        public void onCreate(Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_countdown_timer);

                 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

                 StringBuilder builder = new StringBuilder();
                 builder.append("\n"+ prefs.getString("timerLength","NULL"));
                 startTime = Long.parseLong(builder.toString());




                 TextView view = (TextView)findViewById(R.id.showTimer);
                 view.setText(builder.toString());

2 个答案:

答案 0 :(得分:3)

问题是'\n'字符。该字符串应仅包含long作为字符串,以便成功解析它。

答案 1 :(得分:3)

请删除“\ n”

StringBuilder builder = new StringBuilder();
builder.append(prefs.getString("timerLength","NULL"));
startTime = Long.parseLong(builder.toString());