发布:2021/10/20 22:06:22作者:管理员 来源:本站 浏览次数:1123
在 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<Android.Support.V7.Widget.Toolbar>(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<Button>(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();
}
}
}
轻拍 HELLO WORLD,CLICK ME! 按钮后,会在输出窗口输出以下的内容:
数据库文件的目录: /data/user/0/com.company.AndroidSQLiteDemo/files/MyDocuments.db
此时 Documents.db 数据库中的内容就会复制到 MyDocuments.db 文件中。
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4