zoukankan      html  css  js  c++  java
  • 第三课 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

  • 相关阅读:
    JSP 和Servlet 有有什么关系?
    转发(forward)和重定向(redirect)的区别?
    get和post请求的区别?
    软件的三大类型-单机类型、BS类型、CS类型
    Redis集群搭建
    Tomcat网站上的core和deployer的区别
    spring 事务处理
    mybatis ${}与#{}的区别
    Quartz--Spring 定时任务
    @JsonSerialize @JsonIgnoreProperties @JsonIgnore @JsonFormat
  • 原文地址:https://www.cnblogs.com/catzhou/p/3591208.html
Copyright © 2011-2022 走看看