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

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

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权限,设置方式如下图。

第三课 Spinner的使用的更多相关文章

  1. CodeIgniter框架入门教程——第三课 URL及ajax

    本文转载自:http://www.softeng.cn/?p=74 这节课讲一下CI框架的路由规则,以及如何在CI框架下实现ajax功能. 首先,先介绍CI框架的路由规则,因为CI框架是在PHP的基础 ...

  2. SQL初级第三课(下)

    我们续用第三课(上)的表 辅助表 Student                   Course               Score                    Teacher Sno ...

  3. shellKali Linux Web 渗透测试— 初级教程(第三课)

    shellKali Linux Web 渗透测试— 初级教程(第三课) 文/玄魂 目录 shellKali Linux Web 渗透测试—初级教程(第三课) 课程目录 通过google hack寻找测 ...

  4. 【第三课】ANR和OOM——贪快和贪多的后果(下)

    Out of Mana,法力耗尽. 内存就像法力,耗尽了就什么都不能做了.有时候一个应用程序占用了太大的内存,超过了Android系统为你规定的限制,那么系统就会干掉你,以保证其他app有足够的内存. ...

  5. 【第三课】ANR和OOM——贪快和贪多的后果(上)

    恼人的ANR 早先年用Android的时候,就连很多知名的app也总是莫名其妙崩溃,好像手机快的时候会崩溃,手机卡的时候app会卡死.卡死的时候会弹出来一个框,询问是要结束app还是继续等待.这就是A ...

  6. NeHe OpenGL教程 第三课:颜色渲染

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  7. BeagleBone Black 板第三课:Debian7.5系统安装和远程控制BBB板

    BBB板第三课:Debian7.5系统安装和远程控制BBB板 由于BBB板系统是Debian 7.4.据说使用Debian系统能够实现非常多BBB板的无缝连接.能够更好的学习和控制BBB板,所以就决定 ...

  8. 【Linux探索之旅】第二部分第三课:文件和目录,组织不会亏待你

    内容简介 1.第二部分第三课:文件和目录,组织不会亏待你 2.第二部分第四课预告:文件操纵,鼓掌之中 文件和目录,组织不会亏待你 上一次课我们讲了命令行,这将成为伴随我们接下来整个Linux课程的一个 ...

  9. 【Web探索之旅】第三部分第三课:协议

    内容简介 1.第三部分第三课:协议 2.第四部分预告:Web程序员 第三部分第三课:协议 之前的课,我们学习了Client-Server模型的客户端语言和服务器语言. 客户端语言有HTML,CSS和J ...

随机推荐

  1. OpenCV3编程入门笔记(2)计时函数、感兴趣区域RIO、分离/混合通道

    11     绘制直线的line函数 DrawLine(Mat img, Pont start, Point end); 绘制椭圆的ellipse函数 DrawEllipse(Mat img, dou ...

  2. selenium+python笔记1

    #!/usr/bin/env python # -*- coding: utf-8 -*- """@desc: 讲讲web项目中常用的方法属性 webdriver 提供了 ...

  3. Intellij IDEA中部署Tomcat报错“war exploded: Server is not connected. Deploy is not available”

    最近将本机的Tomcat 7卸载重装了Tomcat 9后,在IDEA中运行Tomcat老是报错,一直未找到解决问题的办法. 只能讲Tomcat重新退回到版本7,才重新再IDEA中运行正常.

  4. Compound Interest Calculator1.0

    Compound Interest Calculator1.0 客户说:帮我开发一个复利计算软件. 计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按 ...

  5. (02)odoo自定义模块

    * 官方建议模块骨架    --------------------------    addons/<my_module_name>/                 │─ __init ...

  6. 你不知道的JavaScript--值得你挑战的JavaScript面试题(45题)

    1,以下表达式的运行结果是: ["1","2","3"].map(parseInt) A.["1","2&qu ...

  7. 修改Linux系统时区

    修改配置文件来修改时区1.修改/etc/sysconfig/clock         ZONE=Asia/Shanghai 2.rm /etc/localtime3.链接到上海时区文件 ln -sf ...

  8. 个人介绍和GitHub

    基本信息: 姓名:陈晖 学号:1413042068 班级:网工143 兴趣爱好:看小说,打游戏,听古风音乐,打羽毛球,骑行等 个人编程能力不高,写的代码都是作业…… GitHub注册流程: 对于Git ...

  9. Angularjs学习——(一)

    去年就接触过AngularJS吧,只可惜那时候仅仅是跟着“老大”机械的完成了“饿了么”——一个单页面的手机App,而其中的什么原理,怎样来实现,自己也是似懂非懂,直至今天自己再次拿起来它,并一个人来研 ...

  10. extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办。。。

    extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办...所以要把它格 ...