我正在创建一个相当简单的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());
答案 0 :(得分:3)
问题是'\n'
字符。该字符串应仅包含long
作为字符串,以便成功解析它。
答案 1 :(得分:3)
请删除“\ n”
StringBuilder builder = new StringBuilder();
builder.append(prefs.getString("timerLength","NULL"));
startTime = Long.parseLong(builder.toString());