如何在編輯文本上顯示日期選擇器彈出窗口在Xamarin.Android中單擊或集中事件?Datepicker:如何在使用C#單擊edittext時彈出日期選擇器xamarin
4
A
回答
8
嘗試這樣的Xamarin.Forms:
public class SamplePage : ContentPage
{
public SamplePage()
{
var editText = new Entry {
Placeholder = "Select Date.",
};
var date = new DatePicker {
IsVisible = false,
IsEnabled = false,
};
var stack = new StackLayout {
Orientation = StackOrientation.Vertical,
Children = {editText, date}
};
editText.Focused += (sender, e) => {
date.Focus();
};
date.DateSelected += (sender, e) => {
editText.Text = date.Date.ToString();
};
Content = stack;
}
}
編輯:
嘗試像這樣的Xamarin.Android:
個MyLayout.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText" />
</LinearLayout>
MyLayoutActivity.cs
using System;
using Android.App;
using Android.OS;
using Android.Widget;
namespace AndiNative
{
[Activity (Label = "MyLayoutActivity", MainLauncher = true)]
public class MyLayoutActivity: Activity
{
private static EditText editText;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.DatePickerTest);
editText = FindViewById<EditText> (Resource.Id.editText);
editText.Click += (sender, e) => {
DateTime today = DateTime.Today;
DatePickerDialog dialog = new DatePickerDialog(this, OnDateSet, today.Year, today.Month - 1, today.Day);
dialog.DatePicker.MinDate = today.Millisecond;
dialog.Show();
};
}
void OnDateSet(object sender, DatePickerDialog.DateSetEventArgs e)
{
editText.Text = e.Date.ToLongDateString();
}
}
}
2
對於那些你們誰喜歡MVVM。這是Xamarin Forms中的MVVM實現。我在這裏使用了Event to Command行爲。你可以得到更多,從這個鏈接 Xamarin Event to Command Behaviors
的XAML
<Entry Text="{Binding DateOfBirth, Mode=TwoWay}" />
<Image Source="button.png" WidthRequest="39">
<Image.GestureRecognizers>
<TapGestureRecognizer Command="{Binding OnSelectDOBCommand}" CommandParameter="{Binding ., Source={Reference DOBPicker}}" />
</Image.GestureRecognizers>
</Image>
<DatePicker x:Name="DOBPicker"
Date="{Binding SelectedDOB}"
IsEnabled="True"
IsVisible="False">
<DatePicker.Behaviors>
<behaviors:DatePickerSelectedBehavior Command="{Binding DateSelectedCommand}" EventName="DateSelected" />
</DatePicker.Behaviors>
</DatePicker>
查看型號代碼
OnSelectDOBCommand = new RelayCommand<DatePicker>(FocusDatePicker);
DateSelectedCommand = new RelayCommand(SetDateOfBirth);
現在函數定義
private void FocusDatePicker(DatePicker obj)
{
obj.Focus();
}
private void SetDateOfBirth()
{
DateOfBirth = SelectedDOB;
}
希望這可以幫助別人
更新2016年11月11日
的另一種方法是使用ACR.Userdialogs簡單明瞭。聲明你的ICommand
OnSelectDOBCommand = new RelayCommand(ShowDatePicker);
下一頁定義函數ShowDatePicker
private void ShowDatePicker()
{
UserDialogs.Instance.DatePrompt(new DatePromptConfig { MaximumDate = MaxDate, OnAction = (result) => SetDateOfBirth(result), IsCancellable = true });
}
和生育功能
private void SetDateOfBirth(DatePromptResult result)
{
if(result.Ok)
{
DateOfBirth = result.SelectedDate.ToString("dd MMM yyyy");
}
}
最好的部分的設定日期,你不需要任何特殊的XAML的。您可以將其掛接到任何按鈕。
艾倫應給予獎勵或東西
1
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="15dp"
android:id="@+id/datePickerText"
android:textColor="@color/textColor"
android:textColorHint="@color/textColor"
android:textSize="14dp"
local:MvxBind="Value Format('{0:dd MMM yyyy}',Date)" />
財產viewmodel-
private DateTime _date = DateTime.Today;
public DateTime Date
{
get
{
return _date;
}
set
{
_date = value;
RaisePropertyChanged(() => Date);
}
}
在我的講座
private EditText datePickerText;
private DatePickerDialogFragment dialog;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.report);
var dp = new MvxDatePicker(this);
dp.SpinnersShown = true;
dp.DateTime = DateTime.Now;
datePickerText.Focusable = false;
datePickerText.Text = ViewModel.Date.ToString("dd-MMM-yyyy");
datePickerText.Click += (sender, args) =>
{
if(datePickerText.Text == "")
dialog = new DatePickerDialogFragment(this, DateTime.Now,this);
else
dialog = new DatePickerDialogFragment(this,Convert.ToDateTime(datePickerText.Text), this);
dialog.Show(this.SupportFragmentManager, "date");
};
datePickerText.TextChanged += (sender, args) =>
{
ViewModel.Date = Convert.ToDateTime(datePickerText.Text);
};
}
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
datePickerText.Text = new DateTime(year, monthOfYear + 1, dayOfMonth).ToString("dd-MMM-yyyy");
}
這裏所花費的默認日期對於今天的情況而言,它會改變日期由用戶選擇
+0
@ratnamanjariswain - 接受我的答案,如果它幫助你。你問這個問題的xamarin.android使用MVVM所以該解決方案將幫助你!最好的祝福.. :) – Ruchira
相關問題
- 1. 彈出日期選擇器
- 2. 如何點擊angular-ui日期選擇器彈出Today按鈕?
- 3. Datepicker:如何在點擊按鈕時彈出日期選擇器並在變量中存儲值
- 4. datepicker-ui點擊日期顯示彈出
- 5. 如何將角度日期選擇器轉換爲彈出日期選擇器
- 6. 彈出DatePicker的EditText
- 7. 選擇DatePicker日期
- 8. 如何在jQuery Datepicker中選擇日期?
- 9. 材料設計日期選擇器:如何彈出日期選擇器當點擊一個微調
- 10. 如何防止使用C#在Xamarin中單擊外部時彈出消息?
- 11. 如何爲出生日期選擇日期配置DatePicker
- 12. Extjs DatePicker:如何使用鼠標點擊禁用日期啓用「點擊/選擇」?
- 13. AUI日期選擇器:在元素焦點上彈出日期選擇器
- 14. 日期選擇器彈出窗口
- 15. jqGrid日期選擇器自動彈出
- 16. Dojo彈出日期選擇器
- 17. 引導日期選擇器彈出框
- 18. jQuery日期選擇器 - 不要彈出
- 19. 日期選擇器Angular2隱藏彈出
- 20. 角bootstrap.ui日期選擇器彈出不
- 21. 如何在日期選擇器中禁用日期時選擇其他日期選擇器中的日期
- 22. 將日期設置爲editText使用日期選擇器
- 23. 單擊按鈕時應出現日期選擇器
- 24. 如何在yii2中選擇其他日期選擇器時自動填充DatePicker
- 25. 如何使用jquery從引導日期選擇器禁用日曆彈出?
- 26. jQuery的日期選擇器點擊與彈出不工作
- 27. 使用Selenium從Datepicker中選擇日期
- 28. 如何在datepicker中選擇日期時取消選中單選按鈕?
- 29. android datepicker錯誤日期選擇器沒有彈出,根本不能選擇日期
- 30. JQuery DatePicker突出顯示日期選擇
vaikesh會有點特殊.. –
我要創建一個類..有關click事件的代碼 –
@ratnamanjariswain什麼:檢查代碼,我已經更新了。 – Vaikesh