【问题标题】:Can I customize the TimePicker or DatePicker provided by default on Android?我可以自定义 Android 默认提供的 TimePicker 或 DatePicker 吗?
【发布时间】:2020-11-03 14:58:51
【问题描述】:

我想知道是否可以自定义 Android 中默认可用的 DatePicker 和 TimePicker。我主要使用微调模式,但我希望能够自定义字体、大小和旋转等各种字体,而不仅仅是更改背景颜色(通过输入 android:background 属性中创建的 drawble 进行更改)。我想知道是否可以将其更改为ios默认使用的TimePicker之类的东西。

【问题讨论】:

    标签: android datepicker timepicker


    【解决方案1】:

    要使用 TimePickerDialog 显示 TimePicker,您需要通过扩展 DialogFragment 类并实现 onCreateDialog 方法来创建片段。在 onCreateDialog 方法中,需要实例化 TimePickerDialog 设置当前时间并返回。

    在需要展示TimePicker的activity中,需要实例化Fragment,响应用户点击按钮等事件进行展示。

    import java.util.Calendar;
    
        public class MyTimePickerFragment extends DialogFragment {
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
    
            final Calendar c = Calendar.getInstance();
            int hour = c.get(Calendar.HOUR_OF_DAY);
            int minute = c.get(Calendar.MINUTE);
    
            return new TimePickerDialog(getActivity(), timeSetListener, hour, minute,
                    DateFormat.is24HourFormat(getActivity()));
        }
    
        private TimePickerDialog.OnTimeSetListener timeSetListener =
                new TimePickerDialog.OnTimeSetListener() {
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        Toast.makeText(getActivity(), "selected time is "
                                + view.getHour() +
                                " / " + view.getMinute()
                                , Toast.LENGTH_SHORT).show();
                    }
                };
    }
    
    
    
    
    
     public class MainActivity extends AppCompatActivity {
        
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
            }
        
            public void showTimePickerDialog(View v) {
                DialogFragment newFragment = new MyTimePickerFragment();
                newFragment.show(getSupportFragmentManager(), "time picker");
            }
        } 
    

    【讨论】:

      猜你喜欢
      • 2017-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 2014-06-07
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多