0
Androidで、私はTimePickerダイアログでEditTextを設定しました。デフォルトの時間になりましたが、TimePicker時間の変更を使用しています。Android TimePickerの問題
私は3つの問題があります時々のEditText変更しないで時間をdisplayng、
1)別の時間を選択します。
2)私がTimePickerを使って同じ時間を選択すると、+ 12時間(例えば今は09.35ですが、21.35を表示します)に変わります。
3)私は時間> = 17.00を選択した場合、私は例外だ:これは私のTimePicker機能である
07-19 11:47:17.574 16224-16224/com.example.myapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapp, PID: 16224
java.lang.ArrayIndexOutOfBoundsException: length=17; index=18
at java.util.Calendar.set(Calendar.java:1122)
at com.example.myapp.activities.MyActivity$9.onTimeSet(MyActivity.java:513)
at android.app.TimePickerDialog.onClick(TimePickerDialog.java:133)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:160)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5376)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
を:
// TimePicker settings
public void setTimeFields(final EditText editText) {
// Calendar instance
final Calendar calendar = Calendar.getInstance();
// TimePicker definition
TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
calendar.set(hourOfDay, minute);
editText.setText(new SimpleDateFormat("HH:mm", Locale.ITALIAN).format(calendar.getTime()));
}
}, calendar.get(Calendar.HOUR), calendar.get(Calendar.MINUTE), DateFormat.is24HourFormat(this));
// Show dialog
timePickerDialog.show();
}
そして、ここに私のeditext定義:
etxTime = (EditText) findViewById(R.id.etxTime);
etxTime.setInputType(InputType.TYPE_NULL);
etxTime.setText(new SimpleDateFormat("HH:mm", Locale.ITALIAN).format(Calendar.getInstance().getTime()));
etxTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setTimeFields(etxTime); } });
どこが間違っていますか? "日付"、 "時間" ボタンと "set_date"、 "SET_TIME" です
あなたの提案として私は変更しました 'calendar.set(hourOfDay、minute);editText.setText(新しいSimpleDateFormat( "HH:mm"、Locale.ITALIAN).format(calendar.getTime())); ' 〜 ' calendar.set(hourOfDay、minute); editText.setText(String.valueOf(hourOfDay)+ ":" + String.valueOf(minute)); ' これは私のために1)と2)の問題を解決しますが、3)持続します。 私は 'calendar.set(hourOfDay、minute);'という行を削除します。正常に動作します。 ありがとうございました。とにかく、なぜ 'calendar.set(hourOfDay、minute);' java.lang.ArrayIndexOutOfBoundsExceptionを作成しますか? – Fedro
私はなぜそれが例外をスローしているのか分からない。とにかく私の解決策が正しいと思うなら、私の答えを正しいものとして受け入れてください。 –