1

Android プラットフォームでのプログラミングはまったくの初心者ですが、もっと学びたいと思っています。現時点では、ステップバイステップのハンドブックを使用してこれを行っています。プログラミング環境に慣れるためです。私は Java 言語の知識を持っていますが、Java 言語が得意だとは言いません。

問題は、私が作成しているのは Android 端末向けの簡単な雑学ゲームです。設定画面で、ユーザーの誕生日に DatePickerDialog を使用しています。Android デバイス (Samsung Galaxy S i9000) またはエミュレーターで実行した場合にのみ、DatePickerDialog をポップアップしようとするとクラッシュします。

私が使用するコードは次のとおりです。

final TextView dob = (TextView) findViewById(R.id.TextView_DOB_Info);
DatePickerDialog dateDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        Time dateOfBirth = new Time();
        dateOfBirth.set(dayOfMonth, monthOfYear, year);
        long dtDob = dateOfBirth.toMillis(true);
        dob.setText(DateFormat.format("MMMM dd, yyyy", dtDob));
        Editor editor = mGameSettings.edit();
        editor.putLong(GAME_PREFERENCES_DOB, dtDob);
        editor.commit();
    }
}, 0, 0, 0);
return dateDialog;

私がここで何か間違っているかどうか誰にもわかりますか?実行すると、そのメソッドで IllegalArgumentException が発生します。私は Eclipse を使用して Android 用のプログラミングを行っていますが、プログラムもかなり新しく (私は Netbeans に慣れています)、Android アプリを介して適切にデバッグする方法をまだ見つけようとしています。

誰かが助けることができれば、それは大歓迎です!よろしく、 フロリス

編集:リクエストに応じて、LogCat行を追加しました:

09-16 18:42:22.386: ERROR/AndroidRuntime(20074): FATAL EXCEPTION: main
09-16 18:42:22.386: ERROR/AndroidRuntime(20074): java.lang.IllegalArgumentException: current should be >= start and <= end
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.widget.NumberPicker.setCurrent(NumberPicker.java:362)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.widget.DatePicker.updateDaySpinner(DatePicker.java:487)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.widget.DatePicker.updateSpinners(DatePicker.java:471)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.widget.DatePicker.init(DatePicker.java:467)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.app.DatePickerDialog.<init>(DatePickerDialog.java:154)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.app.DatePickerDialog.<init>(DatePickerDialog.java:113)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at com.androidbook.triviaquiz.QuizSettingsActivity.onCreateDialog(QuizSettingsActivity.java:404)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.app.Activity.onCreateDialog(Activity.java:2482)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.app.Activity.createDialog(Activity.java:882)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.app.Activity.showDialog(Activity.java:2557)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.app.Activity.showDialog(Activity.java:2524)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at com.androidbook.triviaquiz.QuizSettingsActivity$4.onClick(QuizSettingsActivity.java:367)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.view.View.performClick(View.java:2538)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.view.View$PerformClick.run(View.java:9152)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.os.Handler.handleCallback(Handler.java:587)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.os.Looper.loop(Looper.java:123)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at android.app.ActivityThread.main(ActivityThread.java:3687)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at java.lang.reflect.Method.invokeNative(Native Method)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at java.lang.reflect.Method.invoke(Method.java:507)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
09-16 18:42:22.386: ERROR/AndroidRuntime(20074):     at dalvik.system.NativeStart.main(Native Method)
09-16 18:42:22.414: ERROR/(14248): Dumpstate > /data/log/dumpstate_app_error

今読んでいると、問題が NumberPicker クラスにあることに気付きました。念のために言っておきますが、彼がここで期待している数字の意味は何ですか?

4

1 に答える 1

2

使用したことはありませんDatePickerDialogが、私が知る限り0, 0, 0、年、月、日のパラメーターとして使用しています。これらを論理的なものに設定して2011, 9, 16、それが役立つかどうかを確認してください。

EDIT10実際には、で使用される0〜11の月の数字に準拠していると思うので、9月に使用する必要があるかもしれませんCalendar

于 2011-09-16T17:24:39.857 に答える