• 第三课 Spinner的使用


    Spinner的表现形式相当于C#的ComboBox,样子如下图:

    image

    但选择项的添加方式相当不一样,必须使用数据适配器,上例子。

    Layout——Main.axml

    <?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">
        <TextView
            android:text="Text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/textView1" />
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/spinner1" />
    </LinearLayout>

    Activity1.cs

    using System;
     
    using Android.App;
    using Android.Content;
    using Android.Runtime;
    using Android.Views;
    using Android.Widget;
    using Android.OS;
    using Android.Database;
    using Android.Provider;
     
    namespace SpinnerSample
    {
        [Activity(Label = "SpinnerSample", MainLauncher = true, Icon = "@drawable/icon")]
        public class SpinnerSample : Activity
        {
            private ICursor _BookmarkCursor;
            public ICursor BookmarkCursor
            {
                get
                {
                    if (_BookmarkCursor == null)
                    {
                        _BookmarkCursor = GetBookmarkCursor();
                    }
                    return _BookmarkCursor;
                }
                set { _BookmarkCursor = value; }
            }
     
            public ICursor GetBookmarkCursor()
            {
                return ManagedQuery(Browser.BookmarksUri,
                    new string[] { Browser.BookmarkColumns.Title, Browser.BookmarkColumns.Url, Browser.BookmarkColumns.InterfaceConsts.Id },
                    null,
                    null,
                    null);
            }
     
            protected override void OnCreate(Bundle bundle)
            {
                base.OnCreate(bundle);
     
                SetContentView(Resource.Layout.Main);
     
                CreateSpinner();
            }
            
            int LastSpinnerSelectedPosition;
            public void CreateSpinner()
            {
                LastSpinnerSelectedPosition = 0;
                var TargetSpinner = FindViewById<Spinner>(Resource.Id.spinner1);
                SimpleCursorAdapter SpinnerAdapter = new SimpleCursorAdapter(this,
                    Android.Resource.Layout.SimpleSpinnerItem, BookmarkCursor,
                    new string[] { Browser.BookmarkColumns.Title },
                    new int[] { Android.Resource.Id.Text1 });
                SpinnerAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
                TargetSpinner.Adapter = SpinnerAdapter;
                TargetSpinner.Prompt = "Select ...";
     
                TargetSpinner.ItemSelected += TargetSpinner_ItemSelected;
     
            }
     
            void TargetSpinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
            {
                var CurSpinner = (Spinner)sender;
                var CurSelectedIndex = CurSpinner.SelectedItemPosition;
                if (LastSpinnerSelectedPosition != CurSelectedIndex)
                {
                    ICursor SelectedItem = (ICursor)CurSpinner.SelectedItem;
                    var UrlColumnIndex = SelectedItem.GetColumnIndex(Browser.BookmarkColumns.Url);
                    TextView tv = FindViewById<TextView>(Resource.Id.textView1);
                    tv.Text = SelectedItem.GetString(UrlColumnIndex);
                    LastSpinnerSelectedPosition = CurSelectedIndex;
                }
            }
        }
    }
     

    运行此程序需要READ_HISTORY_BOOKMARKS权限,设置方式如下图。

    image

  • 相关阅读:
    POJ题目分类(转)
    ACM训练计划建议(转)
    ACM题集以及各种总结大全(转)
    HDU 2673 (排序)
    HDU 1391 number steps(找规律,数学)
    HDU 1280 前m大的数(排序,字符串)
    HDU 1236 排名(结构体+排序)
    2015 湘潭大学程序设计比赛(Internet)H题-括号匹配
    最短路---hdu2544
    Rescue--hdu1242
  • 原文地址:https://www.cnblogs.com/catzhou/p/3591208.html
Copyright © 2020-2023  润新知