-1

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

2 に答える 2

4

「\n」を削除してください

StringBuilder builder = new StringBuilder();
builder.append(prefs.getString("timerLength","NULL"));
startTime = Long.parseLong(builder.toString());
于 2012-07-28T09:48:41.917 に答える
3

問題は'\n'キャラ。long文字列を正常に解析するには、文字列にa のみを文字列として含める必要があります。

于 2012-07-28T09:39:50.513 に答える