Xamarin - Tiện ích Android
Bảng chọn ngày
Đây là một widget dùng để hiển thị ngày tháng. Trong ví dụ này, chúng tôi sẽ tạo một bộ chọn ngày hiển thị ngày đã đặt trên chế độ xem văn bản.
Trước hết, hãy tạo một dự án mới và gọi nó datePickerExample. MởMain.axml và tạo ra một datepicker, textview, và một 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>
Tiếp theo, đi tới Mainactivity.cs. Đầu tiên, chúng tôi tạo một phiên bản riêng của một textview bên trongmainActivity:Activity lớp học.
Phiên bản sẽ được sử dụng để lưu trữ ngày đã chọn hoặc ngày mặc định.
private TextView showCurrentDate;
Tiếp theo, thêm mã sau vào sau setContentView() phương pháp.
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);
};
Trong đoạn mã trên, chúng tôi đã tham chiếu trình chọn ngày, chế độ xem văn bản và nút bằng cách tìm chúng từ main.axml sử dụng tập tin FindViewById lớp học.
Sau khi tham chiếu, chúng tôi đặt sự kiện nhấp vào nút chịu trách nhiệm chuyển ngày đã chọn từ bộ chọn ngày sang chế độ xem văn bản.
Tiếp theo, chúng tôi tạo setCurrentDate()để hiển thị ngày hiện tại mặc định cho chế độ xem văn bản của chúng tôi. Đoạn mã sau giải thích cách nó được thực hiện.
private void setCurrentDate() {
string TodaysDate = string.Format("{0}",
DateTime.Now.ToString("M/d/yyyy").PadLeft(2, '0'));
showCurrentDate.Text = TodaysDate;
}
DateTime.Now.ToString() lớp liên kết thời gian của ngày hôm nay với một đối tượng chuỗi.
Bây giờ, xây dựng và chạy Ứng dụng. Nó sẽ hiển thị đầu ra sau:
Bộ chọn thời gian
Time Picker là một widget dùng để hiển thị thời gian cũng như cho phép người dùng chọn và đặt thời gian. Chúng tôi sẽ tạo một ứng dụng chọn thời gian cơ bản hiển thị thời gian và cũng cho phép người dùng thay đổi thời gian.
Đi đến main.axml và thêm một nút mới, chế độ xem văn bản và bộ chọn thời gian như được hiển thị trong đoạn mã sau.
<?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>
Đi đến MainActivity.cs để thêm chức năng hiển thị ngày đã định trên chế độ xem văn bản mà chúng tôi đã tạo.
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;
}
}
Trong đoạn mã trên, trước tiên chúng tôi tham chiếu đến timepicker,set time và chế độ xem văn bản để hiển thị thời gian qua FindViewById<>lớp học. Sau đó, chúng tôi tạo một sự kiện nhấp chuột cho nút đặt thời gian mà khi nhấp chuột sẽ đặt thời gian thành thời gian do một người chọn. Theo mặc định, nó hiển thị thời gian hệ thống hiện tại.
Các setCurrentTime() lớp phương thức khởi tạo txt_showTime textview để hiển thị thời gian hiện tại.
Bây giờ, xây dựng và chạy ứng dụng của bạn. Nó sẽ hiển thị đầu ra sau:
Spinner
Spinner là một widget được sử dụng để chọn một tùy chọn từ một tập hợp. Nó tương đương với một hộp thả xuống / hộp Tổ hợp. Trước hết, hãy tạo một dự án mới và gọi nóSpinner App Tutorial.
Mở Main.axml phía dưới cái layout folder và tạo một cái mới 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>
Mở Strings.xml tập tin nằm dưới values folder và thêm mã sau để tạo 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>
Tiếp theo, mở MainActivity.cs để thêm chức năng hiển thị ngày đã chọn trong tuần.
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();
}
Bây giờ, hãy xây dựng và chạy ứng dụng. Nó sẽ hiển thị đầu ra sau:
Trong đoạn mã trên, chúng tôi đã tham chiếu đến spinner mà chúng tôi đã tạo trong main.axml nộp qua FindViewById<>lớp học. Sau đó, chúng tôi đã tạo mộtarrayAdapter() mà chúng tôi đã sử dụng để liên kết các mục mảng của mình từ strings.xml lớp học.
Cuối cùng chúng tôi đã tạo ra phương pháp SelectedDay() mà chúng tôi đã sử dụng để hiển thị ngày đã chọn trong tuần.