作成日: 2017/08/29 最終更新日: 2017/08/30
文書種別
使用方法
詳細
Studio for Xamarinのコンポーネントを組み合わせて利用することで、コンボボックスのドロップダウン部分にカレンダーを表示することができます。ドロップダウンで表示したカレンダーから任意の日付を選択し、その日付をそのコンボボックスの値として取得可能です。
利用するStudio for Xamarinのコンポーネントは、InputとCalendarです。
InputのDropdown コントロールを構成する要素は、ヘッダー部(Header)とドロップダウン部(DropDown)です。
ヘッダー部で値の表示と入力が行われ、ドロップダウン部に選択肢が表示されます。
この例では、ヘッダー部にInputのMaskedTextView コントロールを利用して日付表示、入力に対応させ、ドロップダウン部分にCalendar コントロールを表示させています。
Xamarin.Androidで画面に配置するコントロールの定義を含めすべてコードで記述したサンプルコードが以下です。
このクラスは、ドロップダウンをViewに設定する内容をActivityで記述しています。
サンプルコード
C#(Xamarin.Android)
Studio for Xamarin > 製品ヘルプ > Input:DropDown を使用したカスタム日付ピッカーの作成
利用するStudio for Xamarinのコンポーネントは、InputとCalendarです。
InputのDropdown コントロールを構成する要素は、ヘッダー部(Header)とドロップダウン部(DropDown)です。
ヘッダー部で値の表示と入力が行われ、ドロップダウン部に選択肢が表示されます。
この例では、ヘッダー部にInputのMaskedTextView コントロールを利用して日付表示、入力に対応させ、ドロップダウン部分にCalendar コントロールを表示させています。
Xamarin.Androidで画面に配置するコントロールの定義を含めすべてコードで記述したサンプルコードが以下です。
このクラスは、ドロップダウンをViewに設定する内容をActivityで記述しています。
サンプルコード
C#(Xamarin.Android)
using Android.App;
using Android.Widget;
using Android.OS;
using C1.Android.Calendar;
using C1.Android.Input;
namespace Input101
{
[Activity(Label = "@string/dropdown", Icon = "@drawable/icon")]
public class DropDownActivity : Activity
{
// 表示するコントロールの変数を定義
C1DropDown dropdown; // ドロップダウン
C1MaskedTextView header; // ヘッダー部に表示するマスク
C1Calendar calendar; // カレンダー
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// ドロップダウン部、ヘッダー部を作成
dropdown = new C1DropDown(this);
header = new C1MaskedTextView(this);
// マスク書式を設定
header.Mask = Resources.GetString(Resource.String.date_mask_string);
// カレンダーを作成
calendar = new C1Calendar(this);
// ヘッダー部にマスクコントロールをセット
dropdown.Header = header;
// ドロップダウン部にカレンダーをセット
dropdown.Dropdown = calendar;
dropdown.DropDownHeight = 800;
dropdown.Animated = true;
// ドロップダウンに表示されたカレンダーで日付を選択した場合の処理
calendar.SelectionChanged += (object sender, CalendarSelectionChangedEventArgs e) =>
{
// ドロップダウンを閉じる
dropdown.IsDropDownOpen = false;
// 日付の書式を指定して、ヘッダー部の値に設定
DateTime dateTime = calendar.SelectedDates[0];
string strDate = dateTime.ToString(Resources.GetString(Resource.String.date_mask_format));
header.Value = strDate;
};
LinearLayout layout = new LinearLayout(this);
LinearLayout.LayoutParams parameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent);
layout.AddView(dropdown, parameters);
SetContentView(layout);
}
}
}
Studio for Xamarin > 製品ヘルプ > Input:DropDown を使用したカスタム日付ピッカーの作成
旧文書番号
82319