Android - 将字符串转换为long值
我正在创建一个相当简单的android应用程序,它基本上是一个计时器,我试图让它可以在设置中设置计时器长度,然后使用首选项检索值并设置它作为计时器的长度。我可以从首选项中检索值并简单显示它。Android - 将字符串转换为long值
但是当我尝试使用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());
问题是'\n'
字符。该字符串只能包含一个long
作为字符串才能成功解析。
我认为你可能是正确的,现在将尝试 – Harry12345 2012-07-28 09:41:59
谢谢,这正是它是,在我面前整个时间... – Harry12345 2012-07-28 09:47:14
他也应该删除prefs返回null。如果它返回null,它可能再次抛出异常。使用try catch也没有意义。 – san 2012-07-28 09:47:16
请删除 “\ n”
StringBuilder builder = new StringBuilder();
builder.append(prefs.getString("timerLength","NULL"));
startTime = Long.parseLong(builder.toString());
我觉得自己的喜好返回NULL。所以它不能被解析。 – 2012-07-28 09:33:23
你有什么异常? – Praveenkumar 2012-07-28 09:33:51
我不认为它这样做,因为我可以检索该值并将其显示为一个字符串 – Harry12345 2012-07-28 09:34:27