http://www.cnblogs.com/ivanyb/archive/2013/03/05/2944818.html

1、首先在VS2010里面创建一个Android Application

简单说明一下解决方案中各个文件的作用:

AndroidManifest.xml:项目环境配置文件,指明了使用Android SDK的版本,和应用能够访问Android 系统的权限配置

Main.axml:项目布局和控件管理文件

Strings.xml:资源文件,控件上的文本显示可以通过 @string/Hello"这种方式获取相应内容

Resource.Designer.cs:里面的内容会根据Main.axml中的控件生成对应的ID等信息。不需要手工编辑它。

2、创建应用

先上效果图在脑海里有个影响到底创建一个什么东东

打开Main.axml 出现Design界面,项目默认创建了一个button,删除之,拖一个Spinner控件到上面,按ctrl+shift+b编译,使我们刚拖的Spinner控件对应的信息生成到Resource.Designer.cs里

打开 Activity1.cs 文件写入如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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 AndroidApplication2
{
    [Activity(Label = "下拉列表", MainLauncher = true, Icon = "@drawable/icon")]
    public class Activity1 : Activity
    {
         protected override void OnCreate(Bundle bundle)
        {
           
            base.OnCreate(bundle);
            //设置Main为我们的布局资源
            SetContentView(Resource.Layout.Main);
                           
            CreateSpinner();
           
        }
        int lastSelected;
        public void CreateSpinner()
        {
            lastSelected = 0;
            //根据ID找到Spinner对象
            var tagSpinner = FindViewById<Spinner>(Resource.Id.spinner1);
            //spinner是通过adapter来绑定数据,所以我们创建一个SimpleCursorAdapter,其中数据来源于BookMarkCursor
            SimpleCursorAdapter simpadp = new SimpleCursorAdapter(this,
                Android.Resource.Layout.SimpleSpinnerItem, BookMarkCursor,
                new string[] { Browser.BookmarkColumns.Title },
                new int[] { Android.Resource.Id.Text1 });
             
            simpadp.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            //将创建的SimpleCursorAdapter 赋给Spinner的Adapter属性,完成数据绑定
            tagSpinner.Adapter = simpadp;
            tagSpinner.Prompt = "选择";
            //注册ItemSelected 事件,实现点击item打开对应的URL
            tagSpinner.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(tagSpinner_ItemSelected);
        }
        void tagSpinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
        {
            Spinner curspinner = (Spinner)sender;
            int curPosition=curspinner.SelectedItemPosition;
            if (lastSelected != curPosition)
            {
                ICursor cursor = (ICursor)curspinner.SelectedItem;
                int urlColumnIndex = cursor.GetColumnIndex(Browser.BookmarkColumns.Url);
                string url = cursor.GetString(urlColumnIndex);
                Intent intent = new Intent(Intent.ActionView);
                intent.SetData(Android.Net.Uri.Parse(url));
                StartActivity(intent);
                lastSelected = curPosition;
            }
        }
        private ICursor _BookMarkCursor;
        public ICursor BookMarkCursor
        {
            get
            {
                if (_BookMarkCursor == null)
                {
                    _BookMarkCursor = GetBookMarkCursor();
                }
                return _BookMarkCursor;
            }
            set
            {
                _BookMarkCursor = value;
            }
        }
        private ICursor GetBookMarkCursor()
        {
            return ManagedQuery(Browser.BookmarksUri, new string[]{
           Browser.BookmarkColumns.Title
           ,Browser.BookmarkColumns.Url
           ,Browser.BookmarkColumns.InterfaceConsts.Id
           }, null, null, null);
        }
    }
}

1
  

在项目属性的”Android Manifest” 标签中选择勾上”READ_HISTORY_BOOKMARKS“ 以允许应用程序读取BOOKMARKS的内容

打开模拟器后,F5运行,即出现可发布应用程序到模拟器中运行.

注意点:

1、Main.axml 里面的Spinner 控件的android:layout_height 要设置成"wrap_content" 如果设置成"fill_parent" 会报错:当前线程不能创建子控件(大概是这个意思,文字不一定准确。。。)

2、在创建SimpleCursorAdapter 的时候,

SimpleCursorAdapter simpadp = new SimpleCursorAdapter(this,Android.Resource.Layout.SimpleSpinnerItem, BookMarkCursor,new string[] { Browser.BookmarkColumns.Title },new int[] { Android.Resource.Id.

Text2

 });

将最后一项设置成了Text2发现,下拉列表中不出现文字,改为Android.Resource.Id.Text1子控件就正常了

3、在项目属性中设置 的时候,由于android-sdk\platforms中只安装了android-8 ,但是在设置的时候 指向到16了,报android-16找不到,所以在选择Target API的时候请注意你android-sdk\platforms目录中安装了哪些文件。

转载于:https://www.cnblogs.com/CharlesGrant/p/3662810.html

Mono for Android 篇二 使用Spinner 实现下拉列表读取Browser.BookmarksUri相关推荐

  1. Android实用笔记——使用Spinner实现下拉列表

    2019独角兽企业重金招聘Python工程师标准>>> 1.编辑activity_main.xml <?xml version="1.0" encoding ...

  2. Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)

    Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Androi ...

  3. 关闭数字健康 android 魅族,数字体验 篇二十八:精雕细刻,只为给魅友更好的选择,魅族16s Pro体验分享...

    数字体验 篇二十八:精雕细刻,只为给魅友更好的选择,魅族16s Pro体验分享 2019-09-06 17:31:22 14点赞 10收藏 15评论 当我还一直在称赞魅族16s所拥有的舒适手感表现时, ...

  4. 中信涂猪android抓包,玩卡计划 篇二:中信《鼠来宝》规则攻略,珠光宝气之后的活动!还记得去年的涂猪吗?...

    玩卡计划 篇二:中信<鼠来宝>规则攻略,珠光宝气之后的活动!还记得去年的涂猪吗? 2020-01-06 17:37:56 2点赞 9收藏 0评论 创作立场声明:1月6日活动即将开启,提前做 ...

  5. 三星Android p 卡,购买经历 篇二:三星S10 半个月使用心得

    购买经历 篇二:三星S10 半个月使用心得 2019-06-18 10:03:08 0点赞 0收藏 0评论 结论 这是一部让人难以割舍的手机,我想拥有也想放弃. 我之前一直是苹果全家桶用户,用的是7P ...

  6. android标记 pdf,PDF标记篇二:安卓手机怎样在pdf文件中做标记

    原标题:PDF标记篇二:安卓手机怎样在pdf文件中做标记 在日常办公中,常常需要给pdf文件添加一些标记,为的是给文本做些说明或者让重点更加明显.电脑上做标记非常简单,不用小编多说!这里小编要说的是在 ...

  7. android游戏性能测试,评测 篇二十九:用游戏数据来彰显实力,华为nova5i Pro游戏性能篇...

    评测 篇二十九:用游戏数据来彰显实力,华为nova5i Pro游戏性能篇 2020-01-02 00:20:00 4点赞 1收藏 2评论 笔者带着大家对华为nova5i Pro做了开箱测试,了解外观与 ...

  8. android 21什么手机,值得买的手机 篇二十一:2019最强千元机之一,2021它还香吗…………荣耀9x...

    值得买的手机 篇二十一:2019最强千元机之一,2021它还香吗----荣耀9x 2021-02-04 15:26:13 1点赞 0收藏 0评论 在MIUI续航的折磨下,购入了一台荣耀9x,价格不多说 ...

  9. android spinner 简书,【Android】Spinner:下拉列表笔记

    AdapterView使用方式都是类似的,都是通过适配器来适配数据源,然后将适配器设置到对应的AdapterView上进行显示 在Spinner中呈现自定义的一些属性值 a.在res-->val ...

最新文章

  1. static 关键字作用
  2. 【Java自顶向下】试手小公司,面试官问我ConcurrentHashMap,我微微一笑……
  3. Visual Studio 2017 Android 调试无法连接到虚拟机
  4. 论文总结:Fast and Light Bandwidth Testing for Internet Users(21‘ NSDI)
  5. 四元数左乘右乘_四元数、欧拉角学习笔记个人理解
  6. Oracle/MySQL数据库的表间关联查询_多表关联查询的SQL语句详解
  7. jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...
  8. JAVA——以ReentrantLock为例学习重入锁以及公平性问题
  9. (筆記) 如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)
  10. 20140711_类的继承、派生、ACE框架、指针的问题、系统的问题
  11. 如何用 latex 排版日文 (xelatex)
  12. Facebook创始人简介
  13. 33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作
  14. 配置PLSQL连接ORACLE数据库
  15. AprilTag: A robust and flexible visual fiducial system论文解读
  16. Procmon.exe —— 强大的系统监视工具
  17. 上海工程技术大学c语言试卷,上海工程技术大学2009_2010C语言试卷A.doc
  18. Linux下编译安装python
  19. D3D粒子系统设计关键要点
  20. 汽车网络安全风口渐起,诚迈科技与Trustonic牵手“发力”

热门文章

  1. 【OpenGL从入门到精通(六)】纹理对象与纹理坐标
  2. Linux C语言编程基本原理与实践
  3. html 图片剪裁压缩,HTML5 canvas实现图片拉伸、压缩与裁剪
  4. pdh光端机相关知识介绍
  5. 飞畅科技教你如何选择合适的交换机?
  6. 【渝粤教育】国家开放大学2018年春季 3780-21T燃气设备操作与维护 参考试题
  7. 【渝粤教育】电大中专学习指南 (3)作业 题库
  8. 【渝粤题库】广东开放大学 文化产业经济学 形成性考核
  9. linux5.9安装教程,Linux内核5.9的最重要功能及安装方法
  10. python怎么改变字体大小_Python-docx 整体修改或者部分修改文字的大小和字体类型...