前言

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绑定数据及点击事件的更多相关文章

  1. Android ListView绑定数据

    ListView绑定数据的三层: ListView绑定数据源从逻辑上可以分为三层:UI层,逻辑层,数据层. UI层:UI层即是ListView控件. 数据层:要展示到ListView控件上面的数据. ...

  2. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

  3. Android ListView 子控件点击事件

    android:descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只 ...

  4. xamarin android listview的用法

    listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarin android开发的乐趣.原谅我的大小写吧. listview绑定自定义的 ...

  5. xamarin android ListView手动分组

    xamarin的listview控件其实自带有分组方法,关于xamarin listview的自带分组方法请自行参考官方文档,我这里只写自己写的分组方法.xamarin自带的分组好是好,功能多,但是加 ...

  6. 在Activity中响应ListView内部按钮的点击事件

    最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在Adapter中响应? 对于这个问题,我最初给他的解答是,在Adapter中定义一个回调接口,在A ...

  7. 在Activity中响应ListView内部按钮的点击事件的两种方法!!!

    在Activity中响应ListView内部按钮的点击事件的两种方法 转载:http://www.cnblogs.com/ivan-xu/p/4124967.html 最近交流群里面有人问到一个问题: ...

  8. 在Activity中响应ListView内部按钮的点击事件的两种方法

    转载:http://www.cnblogs.com/ivan-xu/p/4124967.html 最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在 ...

  9. [置顶] xamarin android自定义标题栏(自定义属性、回调事件)

    自定义控件的基本要求 这篇文章就当是自定义控件入门,看了几篇android关于自定义控件的文章,了解了一下,android自定义控件主要有3种方式: 自绘控件:继承View类,所展示的内容在OnDra ...

随机推荐

  1. ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法

    导读:在ASP.NET的学习中,初步认识了其6大对象(严格说来只能算是属性):Request,Response,Application,Session,Server,OjectContext.这些对象 ...

  2. 【NOIP2014】伤感·伤感·伤感

    Day <0 虽说初三的时候考过一次提高组,而且还考得不错,但自己还是挺看重这次NOIP的[你想想旁边两大神级别人物在死命刷题,蒟蒻怎敢颓废]于是切完所有复赛题后又做了好多好多次模拟赛,状态自己 ...

  3. 常州模拟赛d2t2 小X的密室

    题目描述 密室中有 N 个房间,初始时,小 X 在 1 号房间,而出口在 N 号房间. 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会 单向地 创造一条从房间 X 到房间 Y 的通道.另 ...

  4. servlet分析

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  5. jvm gc回收机制

    jdk8取消永久代,增加metaspace元空间.使用本地内存,不使用堆内存. jstat -gcutil jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause p ...

  6. *Codeforces989D. A Shade of Moonlight

    数轴上$n \leq 100000$个不重叠的云,给坐标,长度都是$l$,有些云速度1,有些云速度-1,风速记为$w$,问在风速不大于$w_{max}$时,有几对云可能在0相遇.每一对云单独考虑. 多 ...

  7. python3.6安装遇到的问题

    Ubuntu16.04版本最新的Python 3.x版本3.5 . 可以从源代码执行安装最新稳定版本3.6. 要安装Python 3.6 ,请运行以下命令: # wget https://www.py ...

  8. 洛谷P2058 仪仗队

    P2058 仪仗队 24通过 34提交 题目提供者shengmingkexue 标签数论(数学相关) 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目描述 作为体育委员,C君 ...

  9. mysql PROCEDURE ANALYSE() 用法

    PROCEDURE ANALYSE() 会让 MySQL 帮你去分析你的字段和其实际的数据,并会给你一些有用的建议.只有表中有实际的数据,这些建议才会变得有用,因为要做一些大的决定是需要有数据作为基础 ...

  10. 关于linter

    各类代码都有规则格式检查工具,称之为linter 比如:csslint/jslint/eslint/pylint sumlime提供了一个linter的框架SublimeLinter,在里面可以使用各 ...