Skip to content

Instantly share code, notes, and snippets.

@pfaucon
Created August 22, 2018 19:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pfaucon/007d5e0f00d72fe96ec0229f0ded365b to your computer and use it in GitHub Desktop.
Save pfaucon/007d5e0f00d72fe96ec0229f0ded365b to your computer and use it in GitHub Desktop.
using System;
using System.Reflection;
using Android.App;
using Android.Content;
using Example.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(TimePicker), typeof(TimePicker24HRenderer))]
namespace Example.Droid.Renderers
{
public class TimePicker24HRenderer : TimePickerRenderer, Android.Views.View.IOnClickListener, TimePickerDialog.IOnTimeSetListener
{
public TimePicker24HRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<TimePicker> e)
{
base.OnElementChanged(e);
Control.SetOnClickListener(this);
}
public void OnClick(global::Android.Views.View v)
{
TimePicker view = Element;
IElementController ElementController = Element as IElementController;
ElementController.SetValueFromRenderer(VisualElement.IsFocusedProperty, true);
BindingFlags bindFlags = BindingFlags.Instance | BindingFlags.NonPublic
| BindingFlags.GetField;
//Get private member _dialog
FieldInfo dialogField = typeof(TimePickerRenderer).GetField("_dialog", bindFlags);
//Get private member dialog if private _dialog not found
if (dialogField == null)
{
dialogField = typeof(TimePickerRenderer).GetField("dialog", bindFlags);
}
if (dialogField != null)
{
var _dialog = (AlertDialog)dialogField.GetValue(this);
_dialog = new TimePickerDialog(Context, this, view.Time.Hours, view.Time.Minutes, true);
_dialog.Show();
}
}
public void OnTimeSet(Android.Widget.TimePicker view, int hourOfDay, int minute)
{
var time = new TimeSpan(hourOfDay, minute, 0);
this.Element.SetValue(TimePicker.TimeProperty, time);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment