Xamarin.Android 记事本(一)
导读
1.视图及数据库的创建
2.listview数据绑定
3.listview的点击事件
正文
如何创建一个listview,大家可以看这里,基本流程操作是一模一样的,我就不多说了,然后就是新建一个数据库,代码如下
class Sqlite : SQLiteOpenHelper
{
public Sqlite(Context context)
: base(context, "notebooksql.db", null, )
{ } public override void OnCreate(SQLiteDatabase db)
{
db.ExecSQL("CREATE TABLE NoteBooksql ( _id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,title TEXT NOT NULL,context TEXT NOT NULL,time TIME NOT NULL)");
db.ExecSQL("INSERT INTO NoteBooksql (title,context,time)values('这是第一篇笔记','笔记笔记第一篇笔记笔记笔记第一篇笔记笔记笔记第一篇笔记笔记笔记第一篇笔记','2015-3-15')");
db.ExecSQL("INSERT INTO NoteBooksql (title,context,time)values('这是第二篇笔记','笔记笔记第二篇笔记笔记笔记第二篇笔记笔记笔记第二篇笔记笔记笔记第二篇笔记','2015-3-15')");
} public override void OnUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.ExecSQL("DROP TABLE IF EXISTS NoteBooksql");
OnCreate(db);
}
}
这里设置了一个自增主键和三个字段,然后我添加了两条默认数据。
数据库创建完成之后我们打开Activity1,继承listactivity,给listview进行绑定数据
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
vdb = new Sqlite(this);
cursor = vdb.ReadableDatabase.RawQuery("SELECT * FROM NoteBooksql", null);
StartManagingCursor(cursor);
string[] title = new string[] { "title", "time" };
int[] time = new int[] { Resource.Id.textView1, Resource.Id.textView2 };
ListAdapter = new SimpleCursorAdapter(this, Resource.Layout.Item, cursor,
title, time);
}
效果图如上
有了数据的listview却不能操作那边是毫无作用,我们可以重新OnListItemClick方法给listview添加点击事件
protected override void OnListItemClick(ListView l, View v, int position, long id)
{
string title= v.FindViewById<TextView>(Resource.Id.textView1).Text.ToString();
string time = v.FindViewById<TextView>(Resource.Id.textView2).Text.ToString();
vdb = new Sqlite(this);
cursor = vdb.ReadableDatabase.RawQuery("SELECT * FROM NoteBooksql where title= '" + title+ "' and time = '" + time + "'", null);
cursor.MoveToFirst();
string Nid = cursor.GetString(cursor.GetColumnIndex("_id"));
var intent = new Intent(this, typeof(Note));
intent.PutExtra("id", Nid);
StartActivity(intent);
this.Finish();
}
这里为了图方便,我直接根据title和time获取id。
效果图如下
Xamarin.Android 记事本(一)的更多相关文章
- Xamarin.Android 记事本(二)自定义AlertDialog
导读 1.自定义一个AlertDialog 2.添加一条数据 正文 记事本应当有一个添加功能,这里我打算在右上角放一个item,然后点击这个item弹出一个对话框,输入名称,点击确定跳转到另一个act ...
- Xamarin Android 记事本(三)删改
这篇我就不做太多的说明了,数据操作之前也都举过例子了,这里就直接贴出删除和修改的代码. public override bool OnOptionsItemSelected(IMenuItem ite ...
- Xamarin.Android之MvvmCross
欢迎大家加入以下开源社区 Xamarin-Cn:https://github.com/Xamarin-Cn Mvvmcross-Cn:https://github.com/Mvvmcross-Cn ...
- [Xamarin.Android] 发布NuGet套件
[Xamarin.Android] 发布NuGet套件 前言 在Xamarin中,可以将自己开发的项目包装成为NuGet套件发布至NuGet Server,来提供其他开发人员使用.本篇介绍如何封装并发 ...
- XAMARIN.ANDROID SIGNALR 实时消息接收发送示例
SignalR 是一个开发实时 Web 应用的 .NET 类库,使用 SignalR 可以很容易的构建基于 ASP.NET 的实时 Web 应用.SignalR 支持多种服务器和客户端,可以 Host ...
- XAMARIN ANDROID 二维码扫描示例
现在二维码的应用越来越普及,二维码扫描也成为手机应用程序的必备功能了.本文将基于 Xamarin.Android 平台使用 ZXing.Net.Mobile 做一个简单的 Android 条码扫描示 ...
- 我正在使用Xamarin的跨平台框架—Xamarin.Android回忆录
一.缘起 在自己给别家公司做兼职外包的时候,已经明确知道外包的活不是那么好干的,一般在经历了初期热血澎湃的激情后,逐渐冷淡,愤怒,再冷淡,再愤怒…,听上去好像高潮迭起,但令人尴尬的是,这高潮迭起我们都 ...
- APP并非一个人在战斗,还有API—Xamarin.Android回忆录
前言 一般来说,一个客户端APP并非独立存在的,很多时候需要与服务器交互.大体可分为两方面的数据,常规字符串数据和文件数据,因为这两种数据很可能传输方式不一样,比如字符串之类的数据,使用HTTP协议, ...
- Xamarin.Android通知详解
一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android下的通知需要获取Notification ...
随机推荐
- Ubuntu Flask安装与配置(待整理)
工作中开发需要用到python的flask框架,无奈网络上的资源很少,连基本的安装和配置都不全,在这做一下整理,方便以后用到. ———————————————————————————— 由于比较繁琐, ...
- 算法复习——splay(bzoj3224)
题目: Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个 ...
- 【2018.10.20】noip模拟赛Day3 飞行时间
今天模拟赛题目 纯考输入的傻逼题,用$scanf$用到思想僵化的我最终成功被$if$大法爆$0$了(这题只有一组$100$分数据). 输入后面那个$(+1/2)$很难$if$判断,所以我们要判两个字符 ...
- CSS选择器与XPath语言
一 在爬取页面信息的过程中,需要到想要的信息进行定位,主要有两种方法.CSS选择器和XPath语言.查找某一个标签,两种方法都可以做到. 二 CSS选择器 http://www.w3school.co ...
- N皇后-位运算优化
N皇后问题 时间限制: 5 Sec 内存限制: 128 MB 题目描述 魔法世界历史上曾经出现过一个伟大的罗马共和时期,出于权力平衡的目的,当时的政治理论家波利比奥斯指出:“事涉每个人的权利,绝不应 ...
- LA 2797 平面区域dfs
题目大意:一个平面区域有n条线段,问能否从(0,0)处到达无穷远处(不穿过任何线段) 分析:若两条线段有一个端点重合,这种情况是不能从端点重合处穿过的 的.因此对每个端点延长一点,就可以避免这个问题. ...
- POJ 2411 状压dp
F - Mondriaan's Dream Time Limit:3000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I6 ...
- chmod u g x o 777
chmod [ugoa] [+-= ] [rwx] 文件或者是目录u:表示文件的属主,g:表文件的属组内的成员,o:则表示其它用户,a:是所有用户的(ugo的总和)+—=:是对权限的操作,+表示增加相 ...
- Spring 详解(二)------- AOP关键概念以及两种实现方式
目录 1. AOP 关键词 2. AOP 的作用 3. AOP 的通知类型 4. 基于 xml 的配置方式 5. 基于注解的配置方式 6. 切面的优先级 7. 重用切点表达式 8. 两种方式的比较(摘 ...
- QML 开发神奇加成之为网络资源设置本地缓存
QML 开发神奇加成之为网络资源设置本地缓存 直接上码: #include <QNetworkAccessManager> #include <QNetworkDiskCache&g ...