Mono for Android 篇二 使用Spinner 实现下拉列表读取Browser.BookmarksUri
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相关推荐
- Android实用笔记——使用Spinner实现下拉列表
2019独角兽企业重金招聘Python工程师标准>>> 1.编辑activity_main.xml <?xml version="1.0" encoding ...
- Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)
Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Androi ...
- 关闭数字健康 android 魅族,数字体验 篇二十八:精雕细刻,只为给魅友更好的选择,魅族16s Pro体验分享...
数字体验 篇二十八:精雕细刻,只为给魅友更好的选择,魅族16s Pro体验分享 2019-09-06 17:31:22 14点赞 10收藏 15评论 当我还一直在称赞魅族16s所拥有的舒适手感表现时, ...
- 中信涂猪android抓包,玩卡计划 篇二:中信《鼠来宝》规则攻略,珠光宝气之后的活动!还记得去年的涂猪吗?...
玩卡计划 篇二:中信<鼠来宝>规则攻略,珠光宝气之后的活动!还记得去年的涂猪吗? 2020-01-06 17:37:56 2点赞 9收藏 0评论 创作立场声明:1月6日活动即将开启,提前做 ...
- 三星Android p 卡,购买经历 篇二:三星S10 半个月使用心得
购买经历 篇二:三星S10 半个月使用心得 2019-06-18 10:03:08 0点赞 0收藏 0评论 结论 这是一部让人难以割舍的手机,我想拥有也想放弃. 我之前一直是苹果全家桶用户,用的是7P ...
- android标记 pdf,PDF标记篇二:安卓手机怎样在pdf文件中做标记
原标题:PDF标记篇二:安卓手机怎样在pdf文件中做标记 在日常办公中,常常需要给pdf文件添加一些标记,为的是给文本做些说明或者让重点更加明显.电脑上做标记非常简单,不用小编多说!这里小编要说的是在 ...
- android游戏性能测试,评测 篇二十九:用游戏数据来彰显实力,华为nova5i Pro游戏性能篇...
评测 篇二十九:用游戏数据来彰显实力,华为nova5i Pro游戏性能篇 2020-01-02 00:20:00 4点赞 1收藏 2评论 笔者带着大家对华为nova5i Pro做了开箱测试,了解外观与 ...
- android 21什么手机,值得买的手机 篇二十一:2019最强千元机之一,2021它还香吗…………荣耀9x...
值得买的手机 篇二十一:2019最强千元机之一,2021它还香吗----荣耀9x 2021-02-04 15:26:13 1点赞 0收藏 0评论 在MIUI续航的折磨下,购入了一台荣耀9x,价格不多说 ...
- android spinner 简书,【Android】Spinner:下拉列表笔记
AdapterView使用方式都是类似的,都是通过适配器来适配数据源,然后将适配器设置到对应的AdapterView上进行显示 在Spinner中呈现自定义的一些属性值 a.在res-->val ...
最新文章
- static 关键字作用
- 【Java自顶向下】试手小公司,面试官问我ConcurrentHashMap,我微微一笑……
- Visual Studio 2017 Android 调试无法连接到虚拟机
- 论文总结:Fast and Light Bandwidth Testing for Internet Users(21‘ NSDI)
- 四元数左乘右乘_四元数、欧拉角学习笔记个人理解
- Oracle/MySQL数据库的表间关联查询_多表关联查询的SQL语句详解
- jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...
- JAVA——以ReentrantLock为例学习重入锁以及公平性问题
- (筆記) 如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)
- 20140711_类的继承、派生、ACE框架、指针的问题、系统的问题
- 如何用 latex 排版日文 (xelatex)
- Facebook创始人简介
- 33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作
- 配置PLSQL连接ORACLE数据库
- AprilTag: A robust and flexible visual fiducial system论文解读
- Procmon.exe —— 强大的系统监视工具
- 上海工程技术大学c语言试卷,上海工程技术大学2009_2010C语言试卷A.doc
- Linux下编译安装python
- D3D粒子系统设计关键要点
- 汽车网络安全风口渐起,诚迈科技与Trustonic牵手“发力”
热门文章
- 【OpenGL从入门到精通(六)】纹理对象与纹理坐标
- Linux C语言编程基本原理与实践
- html 图片剪裁压缩,HTML5 canvas实现图片拉伸、压缩与裁剪
- pdh光端机相关知识介绍
- 飞畅科技教你如何选择合适的交换机?
- 【渝粤教育】国家开放大学2018年春季 3780-21T燃气设备操作与维护 参考试题
- 【渝粤教育】电大中专学习指南 (3)作业 题库
- 【渝粤题库】广东开放大学 文化产业经济学 形成性考核
- linux5.9安装教程,Linux内核5.9的最重要功能及安装方法
- python怎么改变字体大小_Python-docx 整体修改或者部分修改文字的大小和字体类型...