2016年2月17日 星期三

Spinner

Values:
<resources>
   
    <string name="ApplicationName">UserInterface1</string>
    <string name="SpinnerTitle">請選擇一個值</string>//Spinner Dialog型式之Title
    <string-array name="SpinnerData"> //陣列形式作為選單資料
      <item>string Visual Studio</item>
      <item>string Xamarin Studio</item>    
    </string-array>
   
</resources>

Layout:
<Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:spinnerMode="dialog" //點下拉選單後,會跳出新視窗
        android:prompt="@string/SpinnerTitle" //Spinner Dialog型式之Title
        android:id="@+id/spinner1" />
    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:spinnerMode="dialog"
        android:prompt="@string/SpinnerTitle"
        android:id="@+id/spinnerR" />
    <TextView
        android:text="Text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtSpinner1" />

註:@string/SpinnerTitle:呼叫string.xml之SpinnerTitle

Activity:
//...Spinner
            string[] dataSpinner = {"Visual Studio","Xamarin Studio"};

            var spinner1 = this.FindViewById<Spinner>(Resource.Id.spinner1);
            var txtSpinner1 = this.FindViewById<TextView>(Resource.Id.txtSpinner1);

            //由資料來源建立Adapter
            ArrayAdapter<string> sourceSpinner = new ArrayAdapter<string>
                (this, Android.Resource.Layout.SimpleSpinnerItem, dataSpinner);            
            spinner1.Adapter = sourceSpinner;

            //偵測誰被選擇
            spinner1.ItemSelected += (sender, e) =>
            {                          
                txtSpinner1.Text = "你選擇了" + dataSpinner[e.Position];
                //被選擇的dataSpinner, 更新至txtSpinner1
            };

            //換比較好看的Style,也可以到Adapter設定,將SimpleSpinnerItem換成SimpleListItemSingleChoice即可,dropdown也可用
            sourceSpinner.SetDropDownViewResource
                (Android.Resource.Layout.SimpleListItemSingleChoice);

            //由字串資源檔取回下拉選單資料
            var spinnerR = this.FindViewById<Spinner>(Resource.Id.spinnerR);
            ArrayAdapter sourceFromR = ArrayAdapter.CreateFromResource(
                    this,Resource.Array.SpinnerData,
                    Android.Resource.Layout.SimpleSpinnerItem);
            spinnerR.Adapter = sourceFromR;
            sourceFromR.SetDropDownViewResource
             (Android.Resource.Layout.SimpleListItemSingleChoice);

 //...Spinner

沒有留言:

張貼留言