Xamarin-Android 위젯
날짜 선택기
날짜를 표시하는 위젯입니다. 이 예에서는 텍스트보기에 설정된 날짜를 표시하는 날짜 선택기를 만들 것입니다.
먼저 새 프로젝트를 만들고 이름을 datePickerExample. 열다Main.axml 그리고 창조하십시오 datepicker, textview, 및 button.
<?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">
<DatePicker
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:id = "@+id/datePicker1" />
<TextView
android:text = "Current Date"
android:textAppearance = "?android:attr/textAppearanceLarge"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:id = "@+id/txtShowDate" />
<Button
android:text = "Select Date"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:id = "@+id/btnSetDate" />
</LinearLayout>
다음으로 이동 Mainactivity.cs. 먼저 텍스트 뷰의 프라이빗 인스턴스를mainActivity:Activity 수업.
인스턴스는 선택한 날짜 또는 기본 날짜를 저장하는 데 사용됩니다.
private TextView showCurrentDate;
다음으로 다음 코드를 추가하십시오. setContentView() 방법.
DatePicker pickDate = FindViewById<DatePicker>(Resource.Id.datePicker1);
showCurrentDate = FindViewById<TextView>(Resource.Id.txtShowDate);
setCurrentDate();
Button button = FindViewById<Button>(Resource.Id.btnSetDate);
button.Click += delegate {
showCurrentDate.Text = String.Format("{0}/{1}/{2}",
pickDate.Month, pickDate.DayOfMonth, pickDate.Year);
};
위의 코드에서 우리는 datepicker, textview 및 button을 main.axml 파일 사용 FindViewById 수업.
참조 후 날짜 선택기에서 선택한 날짜를 textview로 전달하는 버튼 클릭 이벤트를 설정합니다.
다음으로 우리는 setCurrentDate()기본 현재 날짜를 textview에 표시하는 방법입니다. 다음 코드는 수행 방법을 설명합니다.
private void setCurrentDate() {
string TodaysDate = string.Format("{0}",
DateTime.Now.ToString("M/d/yyyy").PadLeft(2, '0'));
showCurrentDate.Text = TodaysDate;
}
DateTime.Now.ToString() 클래스는 오늘의 시간을 문자열 객체에 바인딩합니다.
이제 앱을 빌드하고 실행합니다. 다음과 같은 출력이 표시되어야합니다.
시간 선택기
시간 선택기는 사용자가 시간을 선택하고 설정할 수있을뿐만 아니라 시간을 표시하는 데 사용되는 위젯입니다. 시간을 표시하고 사용자가 시간을 변경할 수있는 기본 시간 선택기 앱을 만들 것입니다.
이동 main.axml 다음 코드와 같이 새 버튼, 텍스트보기 및 시간 선택기를 추가합니다.
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:orientation = "vertical"
android:background = "#d3d3d3"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent">
<TimePicker
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:id = "@+id/timePicker1" />
<TextView
android:text = "Time"
android:textAppearance = "?android:attr/textAppearanceLarge"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:id = "@+id/txt_showTime"
android:textColor = "@android:color/black" />
<Button
android:text = "Set Time"
android:layout_width = "200dp"
android:layout_height = "wrap_content"
android:id = "@+id/btnSetTime"
android:textColor = "@android:color/black"
android:background = "@android:color/holo_green_dark" />
</LinearLayout>
이동 MainActivity.cs 우리가 만든 textview에 설정된 날짜를 표시하는 기능을 추가합니다.
public class MainActivity : Activity {
private TextView showCurrentTime;
protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
TimePicker Tpicker = FindViewById<TimePicker>(Resource.Id.timePicker1);
showCurrentTime = FindViewById<TextView>(Resource.Id.txt_showTime);
setCurrentTime();
Button button = FindViewById<Button>(Resource.Id.btnSetTime);
button.Click += delegate {
showCurrentTime.Text = String.Format("{0}:{1}",
Tpicker.CurrentHour, Tpicker.CurrentMinute);
};
}
private void setCurrentTime() {
string time = string.Format("{0}",
DateTime.Now.ToString("HH:mm").PadLeft(2, '0'));
showCurrentTime.Text = time;
}
}
위의 코드에서 우리는 먼저 timepicker,set time 버튼과 텍스트보기를 통해 시간을 FindViewById<>수업. 그런 다음 클릭시 사람이 선택한 시간으로 시간을 설정하는 시간 설정 버튼에 대한 클릭 이벤트를 생성했습니다. 기본적으로 현재 시스템 시간을 표시합니다.
그만큼 setCurrentTime() 메소드 클래스는 txt_showTime 현재 시간을 표시하는 textview.
이제 애플리케이션을 빌드하고 실행하십시오. 다음과 같은 출력이 표시되어야합니다.
스피너
스피너는 세트에서 하나의 옵션을 선택하는 데 사용되는 위젯입니다. 드롭 다운 / 콤보 상자와 동일합니다. 먼저 새 프로젝트를 만들고 이름을Spinner App Tutorial.
열다 Main.axml 아래의 layout folder 새로운 spinner.
<?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">
<Spinner
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:id = "@+id/spinner1"
android:prompt = "@string/daysOfWeek" />
</LinearLayout>
열다 Strings.xml 아래에있는 파일 values folder 다음 코드를 추가하여 spinner items.
<resources>
<string name = "daysOfWeek">Choose a planet</string>
<string-array name = "days_array">
<item>Sunday</item>
<item>Monday</item>
<item>Tuesday</item>
<item>Wednesday</item>
<item>Thursday</item>
<item>Friday</item>
<item>Saturday</item>
<item>Sunday</item>
</string-array>
</resources>
다음으로 MainActivity.cs 선택한 요일을 표시하는 기능을 추가합니다.
protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
Spinner spinnerDays = FindViewById<Spinner>(Resource.Id.spinner1);
spinnerDays.ItemSelected += new EventHandler
<AdapterView.ItemSelectedEventArgs>(SelectedDay);
var adapter = ArrayAdapter.CreateFromResource(this,
Resource.Array.days_array, Android.Resource.Layout.SimpleSpinnerItem);
adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropD ownItem);
spinnerDays.Adapter = adapter;
}
private void SelectedDay(object sender, AdapterView.ItemSelectedEventArgs e) {
Spinner spinner = (Spinner)sender;
string toast = string.Format("The selected
day is {0}", spinner.GetItemAtPosition(e.Position));
Toast.MakeText(this, toast, ToastLength.Long).Show();
}
이제 애플리케이션을 빌드하고 실행하십시오. 다음과 같은 출력이 표시되어야합니다.
위의 코드에서 우리는 우리가 만든 스피너를 참조했습니다. main.axml 파일을 통해 FindViewById<>수업. 그런 다음 새로운arrayAdapter() 배열 항목을 바인딩하는 데 사용했습니다. strings.xml 수업.
마지막으로 우리는 방법을 만들었습니다. SelectedDay() 선택한 요일을 표시하는 데 사용되었습니다.