Xamarin - Android Widget'ları

Tarih Seçici

Bu, tarihi görüntülemek için kullanılan bir widget. Bu örnekte, ayarlanan tarihi bir metin görünümünde görüntüleyen bir tarih seçici oluşturacağız.

Her şeyden önce yeni bir proje oluşturun ve adlandırın datePickerExample. AçıkMain.axml ve bir datepicker, textviewve bir 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>

Sonra gidin Mainactivity.cs. Önce, içinde bir metin görünümünün özel bir örneğini oluşturuyoruz.mainActivity:Activity sınıf.

Örnek, seçilen tarihi veya varsayılan tarihi saklamak için kullanılacaktır.

private TextView showCurrentDate;

Ardından, aşağıdaki kodu ekleyin setContentView() yöntem.

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); 
};

Yukarıdaki kodda, tarih seçicimize, metin görünümümüze ve düğmemize başvurduk. main.axml dosya kullanarak FindViewById sınıf.

Referans verdikten sonra, seçilen tarihi tarih seçiciden metin görünümüne geçirmekten sorumlu olan düğme tıklama olayını ayarlıyoruz.

Ardından, setCurrentDate()metin görünümümüzde varsayılan geçerli tarihi görüntüleme yöntemi. Aşağıdaki kod, nasıl yapıldığını açıklamaktadır.

private void setCurrentDate() { 
   string TodaysDate = string.Format("{0}", 
      DateTime.Now.ToString("M/d/yyyy").PadLeft(2, '0')); 
   showCurrentDate.Text = TodaysDate; 
}

DateTime.Now.ToString() class, bugünün zamanını bir string nesnesine bağlar.

Şimdi, Uygulamayı oluşturun ve çalıştırın. Aşağıdaki çıktıyı göstermelidir -

Zaman Seçici

Zaman Seçici, zamanı görüntülemek ve ayrıca bir kullanıcının saati seçip ayarlamasına izin veren bir widget'tır. Saati görüntüleyen ve ayrıca bir kullanıcının saati değiştirmesine izin veren temel bir zaman seçici uygulaması oluşturacağız.

Git main.axml ve aşağıdaki kodda gösterildiği gibi yeni bir düğme, metin görünümü ve bir zaman seçici ekleyin.

<?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>

Git MainActivity.cs oluşturduğumuz metin görünümünde belirli bir tarihi görüntülemek için işlevsellik eklemek.

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;
   } 
}

Yukarıdaki kodda, ilk olarak timepicker,set time düğmesi ve metin görünümü ile zamanı göstermek için FindViewById<>sınıf. Daha sonra, tıklama zamanını bir kişi tarafından seçilen zamana ayarlayan saat ayarlama düğmesi için bir tıklama etkinliği oluşturduk. Varsayılan olarak, mevcut sistem saatini gösterir.

setCurrentTime() yöntem sınıfı, txt_showTime Geçerli saati görüntülemek için metin görünümü.

Şimdi uygulamanızı oluşturun ve çalıştırın. Aşağıdaki çıktıyı göstermelidir -

Spinner

Değer değiştirici, bir setten bir seçeneği seçmek için kullanılan bir widget'tır. Açılır menü / Birleşik giriş kutusunun eşdeğeridir. Her şeyden önce yeni bir proje oluşturun ve adlandırınSpinner App Tutorial.

Açık Main.axml altında layout folder ve yeni bir 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>

Açık Strings.xml altında bulunan dosya values folder oluşturmak için aşağıdaki kodu ekleyin 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>

Sonra açın MainActivity.cs haftanın seçilen gününü görüntüleme işlevselliği eklemek için.

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(); 
}

Şimdi uygulamayı oluşturun ve çalıştırın. Aşağıdaki çıktıyı göstermelidir -

Yukarıdaki kodda, oluşturduğumuz eğiriciye atıfta bulunduk. main.axml dosya aracılığıyla FindViewById<>sınıf. Daha sonra yeni birarrayAdapter() dizi öğelerimizi strings.xml sınıf.

Sonunda yöntemi oluşturduk SelectedDay() haftanın seçilen gününü gösterirdik.