基本的にタイマーであるかなり単純な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());