如何在用户选择其中一个' em'之后在timePicker小部件中保存AM和PM?

时间:2017-05-05 15:50:27

标签: android android-timepicker

我知道很多人会称之为重复问题,但我建议他们先阅读它。

我在XML中有一个timePicker小部件,并且我已经在其上设置了OnTimeChangedListener。我正在获取用户输入(我选择的小时和分钟)并使用sharedPreferences保存它,这工作正常,但即使我选择PM,timePicker也始终显示AM。所以我必须知道如何获得用户选择AM或PM并保存它,就像我节省了小时和分钟一样?

timePicker小部件XML:

<TimePicker
    android:id="@+id/time_picker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

Java代码:

// IMPLEMENTATION OF TIME PICKER'S TIME CHANGE EVENT
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                savedHour = hourOfDay;
                savedMinute = minute;

            }
        });



// IMPLEMENTATION OF SAVE BUTTON
        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Boolean isNotification = notificationSwitch.isChecked();
                editor.putBoolean("isNotification", isNotification);
                editor.putInt("saved_hour", savedHour);
                editor.putInt("saved_minute", savedMinute);
                editor.putBoolean("hasTimeSaved", true);
                editor.apply();
                finish();
            }
        });

// CHECK WHETHER TIME HAS BEEN SAVED BY THE USER OR NOT
if (preferences.getBoolean("hasTimeSaved", false)) {
        if (Build.VERSION.SDK_INT >= 23) {
            timePicker.setHour(preferences.getInt("saved_hour", 11));
            timePicker.setMinute(preferences.getInt("saved_minute", 11));
        }else {
            timePicker.setCurrentHour(preferences.getInt("saved_hour", 11));
            timePicker.setCurrentMinute(preferences.getInt("saved_minute", 11));
        }
    }

我已经尝试过setIs24Hour为true并且它工作正常但我不喜欢我的时间选择器小部件的外观,所以我不想要那个。

1 个答案:

答案 0 :(得分:0)

Android的TimePicker内部为24小时,所以OnTimeChangedListener你应该得到0~23。同样,使用12到23之间的值调用setHour()应该在时间选择器上显示PM。我刚刚在手机上测试了它,一切都按预期工作。