xamarin.android listview绑定数据及点击事件
前言
listview是用来显示数据列表的一个控件,今天给大家带来如何使用cursor进行数据绑定以及点击事件。
导读
1.如何创建一个listview
2.如何使用cursor进行绑定数据
3.listview的点击事件
正文
1.如何创建一个listview
这里我们自定义一个listview的视图,首先打开Main.axml,拖一个listview放进去。
右击Layout新建一个视图,名为UserListItemLayout.axml,拖两个textview进去,如图

这样我们就完成了一个自定义的listview,
是用listview需要继承listactivity类,也可以不继承,不继承也有不继承的方法,我会把两个方法都写出来。
SQLite vdb;
ICursor cursor;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
//SetContentView(Resource.Layout.Main);
ActionBar.SetDisplayHomeAsUpEnabled(true);
vdb = new SQLite(this);
cursor = vdb.ReadableDatabase.RawQuery("SELECT * FROM TestTable", null);
StartManagingCursor(cursor);
string[] name = new string[]{ "name", "phone" };
int[] phone = new int[] { Resource.Id.textName, Resource.Id.textPhone };
ListAdapter = new SimpleCursorAdapter(this, Resource.Layout.UserListItemLayout, cursor,
name,phone);
}
这里我们给cursor绑定了数据,如何创建数据库请参考YZF的Xamarin.Android之SQLiteOpenHelper,这里继承了listactivity,所以无法使用setcontentview。
如何需要使用setcontentview的话,我们可以不继承listactivity,只需要把代码改成这样既可
public class Activity1 : Activity
{
SQLite vdb;
ICursor cursor;
ListView listView; protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
//SetContentView(Resource.Layout.Main);
ActionBar.SetDisplayHomeAsUpEnabled(true);
listView = FindViewById<ListView>(Resource.Id.listView1);
vdb = new SQLite(this);
cursor = vdb.ReadableDatabase.RawQuery("SELECT * FROM TestTable", null);
StartManagingCursor(cursor);
string[] name = new string[]{ "name", "phone" };
int[] phone = new int[] { Resource.Id.textName, Resource.Id.textPhone };
listview.Adapter = new SimpleCursorAdapter(this, Resource.Layout.UserListItemLayout, cursor,
name,phone);
}
效果图如下

3.listview的点击事件
这里listview的点击事件有两种方法,第一种是继承listactivity使用的方法,第二种是不继承listactivity的使用方法。
这里我们可以直接重写OnListItemClick方法既可调用listview的点击事件
protected override void OnListItemClick(ListView l, View v, int position, long id)
{ }
或者你使用了第二种方法
this.listView.ItemClick += new EventHandler<AdapterView.ItemClickEventArgs>(ListView_ItemClick);
void ListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{ }
最后效果图如下


xamarin.android listview绑定数据及点击事件的更多相关文章
- Android ListView绑定数据
ListView绑定数据的三层: ListView绑定数据源从逻辑上可以分为三层:UI层,逻辑层,数据层. UI层:UI层即是ListView控件. 数据层:要展示到ListView控件上面的数据. ...
- Android Listview中Button按钮点击事件冲突解决办法
今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...
- Android ListView 子控件点击事件
android:descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只 ...
- xamarin android listview的用法
listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarin android开发的乐趣.原谅我的大小写吧. listview绑定自定义的 ...
- xamarin android ListView手动分组
xamarin的listview控件其实自带有分组方法,关于xamarin listview的自带分组方法请自行参考官方文档,我这里只写自己写的分组方法.xamarin自带的分组好是好,功能多,但是加 ...
- 在Activity中响应ListView内部按钮的点击事件
最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在Adapter中响应? 对于这个问题,我最初给他的解答是,在Adapter中定义一个回调接口,在A ...
- 在Activity中响应ListView内部按钮的点击事件的两种方法!!!
在Activity中响应ListView内部按钮的点击事件的两种方法 转载:http://www.cnblogs.com/ivan-xu/p/4124967.html 最近交流群里面有人问到一个问题: ...
- 在Activity中响应ListView内部按钮的点击事件的两种方法
转载:http://www.cnblogs.com/ivan-xu/p/4124967.html 最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在 ...
- [置顶]
xamarin android自定义标题栏(自定义属性、回调事件)
自定义控件的基本要求 这篇文章就当是自定义控件入门,看了几篇android关于自定义控件的文章,了解了一下,android自定义控件主要有3种方式: 自绘控件:继承View类,所展示的内容在OnDra ...
随机推荐
- ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法
导读:在ASP.NET的学习中,初步认识了其6大对象(严格说来只能算是属性):Request,Response,Application,Session,Server,OjectContext.这些对象 ...
- 【NOIP2014】伤感·伤感·伤感
Day <0 虽说初三的时候考过一次提高组,而且还考得不错,但自己还是挺看重这次NOIP的[你想想旁边两大神级别人物在死命刷题,蒟蒻怎敢颓废]于是切完所有复赛题后又做了好多好多次模拟赛,状态自己 ...
- 常州模拟赛d2t2 小X的密室
题目描述 密室中有 N 个房间,初始时,小 X 在 1 号房间,而出口在 N 号房间. 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会 单向地 创造一条从房间 X 到房间 Y 的通道.另 ...
- servlet分析
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...
- jvm gc回收机制
jdk8取消永久代,增加metaspace元空间.使用本地内存,不使用堆内存. jstat -gcutil jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause p ...
- *Codeforces989D. A Shade of Moonlight
数轴上$n \leq 100000$个不重叠的云,给坐标,长度都是$l$,有些云速度1,有些云速度-1,风速记为$w$,问在风速不大于$w_{max}$时,有几对云可能在0相遇.每一对云单独考虑. 多 ...
- python3.6安装遇到的问题
Ubuntu16.04版本最新的Python 3.x版本3.5 . 可以从源代码执行安装最新稳定版本3.6. 要安装Python 3.6 ,请运行以下命令: # wget https://www.py ...
- 洛谷P2058 仪仗队
P2058 仪仗队 24通过 34提交 题目提供者shengmingkexue 标签数论(数学相关) 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目描述 作为体育委员,C君 ...
- mysql PROCEDURE ANALYSE() 用法
PROCEDURE ANALYSE() 会让 MySQL 帮你去分析你的字段和其实际的数据,并会给你一些有用的建议.只有表中有实际的数据,这些建议才会变得有用,因为要做一些大的决定是需要有数据作为基础 ...
- 关于linter
各类代码都有规则格式检查工具,称之为linter 比如:csslint/jslint/eslint/pylint sumlime提供了一个linter的框架SublimeLinter,在里面可以使用各 ...