簡體   English   中英

Android時間選擇器

[英]Android time picker

按下按鈕時,我已使用此Android開發人員頁面上的代碼創建時間選擇器。 但是,我沒有找到正確的外觀。 我將我的應用定位為API 18,最小值為10,因為由於使用率高 ,我想支持2.3。 所需的最低SDK似乎對問題沒有影響(我將其設置為16):

我正在使用Android 4.1.2,API 16在HTC One S上調試應用程序。我得到了這種時間選擇器,但是我希望它看起來很現代,就像前面鏈接的Android開發人員頁面中一樣。

http://www.b2creativedesigns.com/Tutorials/TimePicker/tutorial_timepicker2.png

為什么使用這種史前時間選擇器?

我使用以下代碼段創建對話框。 我從FragmentActivity調用它。

DialogFragment newFragment = TimePickerFragment.newInstance(2);
newFragment.show(getSupportFragmentManager(), "endtime");

這是TimePickerFragment的代碼。

public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
    private static int id;

    public static TimePickerFragment newInstance(int _id) {
        Bundle args = new Bundle();
        args.putInt("id", _id);

        id = _id;

        TimePickerFragment f = new TimePickerFragment();
        f.setArguments(args);

        return f;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        id = getArguments().getInt("id");

        int hour = start / 60;  // start is a global variable, no problems in these
        int minute = start % 60;

        if(id == 2) {
            hour = end / 60;
            minute = end % 60;
        }

        return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity()));
    }

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        System.out.println(hourOfDay + ":" + minute);
        setTime(id, hourOfDay, minute);
    }

}

您需要對Holo小部件使用Holo主題才能在您的應用中使用。 例如 :

在清單中,在應用程序下:

android:theme="@style/AppTheme"

並在您的res / values文件夾中:

<style name="AppBaseTheme" parent="android:Theme.Light.NoTitleBar">
</style>

在values-v11和values-v14中使用時:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light.NoActionBar">
</style>

系統將根據設備上的Android版本在Theme.Light和Theme.Holo.Light之間切換。

使用ContextThemeWrapperDialog顯式提供基於Holo的主題,例如

return new TimePickerDialog(
        new ContextThemeWrapper(getActivity(), R.style.YourAppStyleInheritingFromHolo),
        this, hour, minute, DateFormat.is24HourFormat(getActivity()));

您可能想看一下這個庫。 它是從Android 4.2向后移植的TimePicker,可從android 2.1向上運行。

https://github.com/SimonVT/android-timepicker

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM