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

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

        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());
有帮助吗?

解决方案

问题是 '\n' 性格。字符串应该只包含一个 long 作为它被成功解析的字符串。

其他提示

pls删除“\ n”

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top