DroidScript是一个强大的应用开发工具,它允许开发者轻松创建各种类型的应用,比如数据库应用、消息应用、邮件应用等。此外,DroidScript还提供了对移动设备上各种传感器的访问,如加速度计、指南针、相机、GPS等。DroidScript应用内置了一个编辑器,可以直接在设备上创建应用,也可以通过在PC上使用WiFi编辑器进行脚本的创建或编辑。
本文将展示如何使用DroidScript Android应用来开发Android平台的应用。将创建一个简单的数据库应用,该应用可以在设备的SQLite数据库中插入、更新、删除和查询数据。
本应用创建了一个名为empdb的示例数据库,并在其中创建了一个名为emp的表,包含empid、empname和salary三列。应用中包含六个按钮:添加、显示、显示全部、编辑、删除和删除全部,用于执行数据库表的常见操作。
当应用程序开始运行时,会自动执行OnStart()
函数。用户界面可以在OnStart()
函数中进行编码。内置的app
对象代表当前应用。app
对象的CreateLayout()
函数可以用来创建布局。SetBackGradient()
函数可以用来为应用创建一个背景渐变。布局的AddChild()
函数可以向布局中添加控件。以下代码在OnStart()
函数中创建了一个接受员工ID的文本字段界面:
mainLayout = app.CreateLayout("linear", "Vertical,FillXY");
mainLayout.SetBackGradient("#ff0000ff", "#ffff0000");
empidLayout = app.CreateLayout("linear", "Horizontal");
empidLabel = app.CreateText("Emp ID: ", 0.5, 0.1);
empidText = app.CreateTextEdit("", 0.5, 0.1);
empidLayout.AddChild(empidLabel);
empidLayout.AddChild(empidText);
mainLayout.AddChild(empidLayout);
布局可以嵌套在彼此内部,以创建复杂的布局。例如,以下代码在主布局中创建了三个水平排列的按钮。
btnLayout1 = app.CreateLayout("linear", "Horizontal");
btnAdd = app.CreateButton("Add", 0.25, 0.1);
btnAdd.SetOnTouch(btnAdd_OnTouch);
btnDisplay = app.CreateButton("Display", 0.25, 0.1);
btnDisplay.SetOnTouch(btnDisplay_OnTouch);
btnDisplayAll = app.CreateButton("Display All", 0.25, 0.1);
btnDisplayAll.SetOnTouch(btnDisplayAll_OnTouch);
btnLayout1.AddChild(btnAdd);
btnLayout1.AddChild(btnDisplay);
btnLayout1.AddChild(btnDisplayAll);
mainLayout.AddChild(btnLayout1);
按钮对象的SetOnTouch()
函数指定了按钮点击事件的事件处理程序。添加完所有控件后,最终可以使用app
的AddLayout()
函数将主布局添加到应用中:
app.AddLayout(mainLayout);
可以使用app
的OpenDatabase()
方法创建或打开数据库(如果数据库已存在)。数据库对象的ExecuteSql()
方法可以用来执行数据库上的任何SQL命令。以下代码创建或打开一个名为empdb的数据库,并在不存在的情况下创建emp表。
db = app.OpenDatabase("empdb");
db.ExecuteSql("create table if not exists emp(empid integer primary key, empname text, salary integer)");
可以使用ExecuteSql()
函数对表执行其他DML操作和查询。
以下代码插入一条新记录,以参数形式获取字段值,并指定错误事件处理程序:
function btnAdd_OnTouch() {
db.ExecuteSql("insert into emp values(?,?,?)", [empidText.GetText(), empnameText.GetText(), empsalaryText.GetText()], null, OnError);
empidText.SetText("");
empnameText.SetText("");
empsalaryText.SetText("");
empidText.Focus();
}
类似地,可以根据主键查询记录:
function btnDisplay_OnTouch() {
db.ExecuteSql("select * from emp where empid=?", [empidText.GetText()], OnResult);
}
所有记录都可以在警告对话框中检索并显示:
function btnDisplayAll_OnTouch() {
db.ExecuteSql("select * from emp", [], OnAllResults);
}
记录可以像下面这样进行编辑:
function btnEdit_OnTouch() {
db.ExecuteSql("select * from emp where empid=?", [empidText.GetText()], OnEditResult);
}
以下代码删除指定ID的员工的详细信息:
function btnDelete_OnTouch() {
db.ExecuteSql("select * from emp where empid=?", [empidText.GetText()], OnDeleteResult);
}
function btnDeleteAll_OnTouch() {
dlgDeleteAllConf.Show();
}