xamarin怎么调用java的_XamarinSQLite教程在Xamarin.Android项目中使用数据库

XamarinSQLite教程在Xamarin.Android项目中使用数据库

在Xamarin.Android项目中使用预设数据库的具体操作步骤如下:

(1)创建一个Xamarin.Android项目,如AndroidSQLiteDemo。

(2)在AndroidSQLiteDemo项目的Resources文件夹下创建一个Raw文件夹。

(3)将上一节中创建的Documents.db数据库拖动到Raw文件夹中。

(4)打开MainActivity.cs文件,将Documents.db数据库的内容复制到/data/data/[your packageName/files/ MyDocuments.db中,代码如下:

using System;

using Android.App;

using Android.Content;

using Android.Runtime;

using Android.Views;

using Android.Widget;

using Android.OS;

using Android.Support.V7.App;

using System.IO;

using System.Text;

namespace AndroidSQLiteDemo

{

[Activity(Label = "@string/app_name", MainLauncher = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTop, Icon = "@drawable/icon")]

public class MainActivity : AppCompatActivity

{

protected override void OnCreate(Bundle bundle)

{

base.OnCreate(bundle);

SetContentView(Resource.Layout.main);

var toolbar = FindViewById(Resource.Id.toolbar);

if (toolbar != null)

{

SetSupportActionBar(toolbar);

SupportActionBar.SetDisplayHomeAsUpEnabled(false);

SupportActionBar.SetHomeButtonEnabled(false);

}

// Get our button from the layout resource,

// and attach an event to it

var clickButton = FindViewById(Resource.Id.my_button);

clickButton.Click += (sender, args) =>

{

var sqliteFilename = "MyDocuments.db";

string documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); // Documents folder

var path = Path.Combine(documentsPath, sqliteFilename);

Console.WriteLine("数据库文件的目录:{0}",path);

if (!File.Exists(path))

{

var s = Resources.OpenRawResource(Resource.Raw.Documents);

//创建写入列

FileStream writeStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);

ReadWriteStream(s, writeStream);

}

};

}

void ReadWriteStream(Stream readStream, Stream writeStream)

{

int Length = 256;

Byte[] buffer = new Byte[Length];

int bytesRead = readStream.Read(buffer, 0, Length);

// 写入所需字节

while (bytesRead > 0)

{

writeStream.Write(buffer, 0, bytesRead);

bytesRead = readStream.Read(buffer, 0, Length);

}

readStream.Close();

writeStream.Close();

}

}

}

运行程序后,初始状态如图1.31所示。

91b7d3e9aaaf03c42de4a3ad60450006.png

轻拍HELLO WORLD,CLICK ME!按钮后,会在输出窗口输出以下的内容:

数据库文件的目录:/data/user/0/com.company.AndroidSQLiteDemo/files/MyDocuments.db

此时Documents.db数据库中的内容就会复制到MyDocuments.db文件中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务框架及服务治理组件——业界调研

声明:主要内容来自公司内部 对业界的调研,不一定恰当、准确、实时。 表格文字较多,APP阅读体验较差 团队服务相关组件\方案通信框架监控负载均衡\路由是否开源腾讯完全自研;BG内部自治,每个BG有自己相应的解决方案,单独…

Swift快速入门(一)第一个Swift程序

1. 本系列说明 本系列只是一个Swift快速入门的教程,并没有详尽的介绍Swift,Swift也并不是一个简单的编程语言,所以要想详尽的系统的学习Swift,本系列并不适合你,此系列只是让开发者可以快速的用Swift来进行开发。另外学…

Scala学习之爬豆瓣电影

简单使用Scala和Jsoup对豆瓣电影进行爬虫,技术比較简单易学。写文章不易,欢迎大家採我的文章,以及给出实用的评论,当然大家也能够关注一下我的github;多谢。 1、爬虫前期准备 找好须要抓取的链接:https://m…

[JMX一步步来] 9、基于JBoss来写MBean

前面都是用JDK自带的JMX实现来写的MBean,JMX的实现不独SUN一家,JBOSS也有自己的JMX实现。如果你使用JBOSS来做WEB服务器,那么基于JBOSS的实现来写MBean,是一个不错的选择。象我们公司就是用JBOSS的,因此所有MBean都是基…

一个漂亮的输出MySql数据库表结构的PHP页面

经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作。…

java 属于以下哪种语言_Java属于以下哪种语言?( )

对于宝来(Bora2004)轿车EPS系统,属于当转向扭矩传感器G269发生故障时,只需单独更换转向扭矩传感器就行了。一般说来,下语可以根据下列因素判断趋势线的有效性 ( )。关于股价的移动规律,属于下列论述不正确的是( )。如果希望预测未…

C#设计模式(19)——状态者模式(State Pattern)

原文:C#设计模式(19)——状态者模式(State Pattern)一、引言 在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题,在本文中将首先通过一个银行账户的例子来解释状态者模式,通过这个例子使大家可以对状态…

如何规范 CSS 的命名和书写

我开始学前端的时候也是对于规范问题头疼,后来看了网易的NEC规范,惊呼牛逼 NEC : 更好的CSS样式解决方案 只遵循横向顺序即可,先显示定位布局类属性,后盒模型等自身属性,最后是文本类及修饰类属性。 →显示属性自身属性…

《学做程序经理》完整版

文/Joel Spolsky 译/罗小平 指派一名优秀的程序经理,是团队产出优秀软件的重要前提之一。你的团队里可能没有这样的人,其实绝大多数团队都没有。 Charles Simonyi,这位曾与MarthaStewart(译者注:美国女富豪&#…

java工程mvn引用jar_maven 项目加载本地JAR

将jar安装到本地的maven仓库1.首先确定本地有maven环境。2.安装本地jar模板:mvn install:install-file -Dfile -DgroupId -DartifactId -Dversion -Dpackaging示例:mvn install:install-file -DfileF:\jave-ffmpegjave-1.0.2.jar -DgroupIdffmpegjave -D…

优秀的软件企业为何倒下?

最近不到一个月,就看到两家著名公司——SUN公司和Borland公司相继被收购,引起IT界不小的震动,让人感慨万分。在此之前有北电(Nortel)、摩托罗拉的衰退,再往前有 美国数字设备公司Digital(Digita…

kafka exporter v0.3.0 发布: Prometheus官方推荐,欢迎试用

2019独角兽企业重金招聘Python工程师标准>>> 时隔1个半月,kakfa exporter v0.3.0于今日正式发布,欢迎大家试用。 项目地址 Github: https://github.com/danielqsj/kafka_exporter Docker Hub: https://hub.docker.com/r/danielqsj/kafka-expo…

java手动切换成独立显卡_JAVA设计模式之调停者模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述调停者(Mediator)模式的:调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发…

Hadoop2.6.0完全分布式安装

1、修改主机名称 对master/slave1/slave2同时配置为Master/Slave1/Slave2 masterMaster:~$ sudo gedit /etc/hostname 上述3个虚机结点均需要进行以上步骤 2、填写主机IP 对master/slave1/slave2同时配置 masterMaster:~$ sudo gedit /etc/hosts 192.168.48.128 master192.168.…

DEX加密效果分析

dex加密目的:保护安卓应用的Java源代码,避免被恶意分析,技术被窃取准备工具:1、apktool :反编译apk,提取smali代码2、dex2jar :将dex转化为jar文件3、jd-gui :查看jar文件&#xff0…

kd树的原理

kd树就是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构,可以运用在k近邻法中,实现快速k近邻搜索。构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分。    假设数据集\(T\)的大小是\(m*n\),即\(T{x_1,x_2,...x_m}\),其中…

力软 java主从表保存_JAVA常用知识总结(十二)——数据库(二)

MySQL主从热备份工作原理简单的说:就是主服务器上执行过的sql语句会保存在binLog里面,别的从服务器把他同步过来,然后重复执行一遍,那么它们就能一直同步啦。整体上来说,复制有3个步骤:作为主服务器的Maste…

Java——线程的创建,线程池

线程 多线程就是一个程序中有多个线程在同时执行。 多线程下CPU的工作原理 实际上,CPU(中央处理器)使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言,某个时刻,只能执行一个线程,而CPU的在多个线程间切换速度…

java并查集找朋友圈_图—并查集(解决朋友圈问题)

图也是一种 非线性结构,是由多个顶点组成的关系集合组成的一种数据结构。图可以分为两种,无向图和有向图。★图的定义:★典型问题:利用图能够解决很多问题,这里有一个较为典型的问题,假如已知有n个人和m对好友关系(存于…

(三)SpringBoot之配置文件详解:Properties和YAML

一、配置文件的生效顺序,会对值进行覆盖: 1. TestPropertySource 注解2. 命令行参数3. Java系统属性(System.getProperties())4. 操作系统环境变量5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource6. 在打包的j…