安卓开发语法

基础语言结构

在安卓中每一个独立的源代码(窗口、模块、自定义组件)文件都是由以下几个部分组成:

  • 引用

    • 用于在代码中添加原生类的引用、与英文关键字 import 用法一样。
  • 变量/数组

    • 用于在程序中声明可能用到的储存临时数据的标记、其中又分为全局变量、页面成员变量、及局部变量
  • 事件

    • 用于在程序中接收用户针对程序发出的操作;例如:在窗口中接收并监听按钮被用户单击事件
  • 函数

    • 用于对程序中业务逻辑的封装、代码调度。
  • 定义

    • 用于在程序中定义结构体、回调事件的实现类。

引用

与 Java 的 import 功能一样、通过引用关键字可以在程序中的源文件代码中;例如:窗口、模块、或自定义组件(.sc)文件中使用原生的、扩展的数据类型;例如:

引用 android.widget.Button
引用 java.io.*

注:若使用Jar包文件、只需要将 jar 文件放在项目的 libs 文件夹内即可像 Java 使用 jar 一样使用。

变量

在安卓中、声明变量的格式与 VB 语言基本一致;但除了基本的声明格式外、还支持自动类型推断;其格式为:

变量 标识符 为 数据类型
变量 标识符 为 数据类型 = 初始化数据
变量 标识符1,标识符2,标识符3,... 为 数据类型
变量 标识符 = "数据值"
变量 标识符 = 创建 类型()
...

示例代码:

变量 A 为 文本型
变量 a 为 文本型
变量 网址URL 为 文本型
变量 x,y 为 整数型
变量 m 为 文本型 = "vcnstudio"
变量 pi 为 双精度小数 = 3.14159
变量 url = "http://www.vcnstudio.com"
变量 an1 = 创建 按钮() 
变量 x1,y1 = 0

变量类型自动推断

类型自动推断、即在声明变量的时候无需显示的指定变量属于什么数据类型;编译器在编译时通过初始值确定变量类型;因此使用自动推断变量类型必须为变量设置其初始值、格式为:

变量 变量名称 = 初始值
变量 变量名称 = 创建 对象类型()

默认支持的自动类型推断支持以下类型;代码示例:

变量 a = "文本类型变量"
变量 b = 100 ' 整数型
变量 c = 真  ' 逻辑型
变量 d = 1000L ' 长整数
变量 e = 1.5   ' 双精度小数
变量 f = 1.2f  ' 单精度小数
变量 g = 创建 按钮() ' 按钮对象
变量 h = 取随机数(10,20) ' h为函数返回值、整数型

需注意:自动推断需要依靠变量的初始值确定变量类型;因此声明变量时必须设置初始值、且初始值必须为常量、或创建对象、或为对应框架的内置函数。

数组

数组在程序开发中是一种非常常见的数据体、可以将多个相同类型的数据组成一个整体使用、在处理或要传递多个数据时、使用数组是一种非常常见的方式、数组的声明格式为:

变量 变量名称 为 数据类型[] = { 初始化值 }
变量 变量名称 为 数据类型[]
变量 变量名称 为 数据类型[10]

代码示例:

变量 a 为 文本型[] = { }  '定义一个空数组
变量 b 为 文本型[] = { "vcn","studio" } '定义一个文本数组、并设置初始值
变量 c 为 整数型[] = { 1,2,3 }  '定义一个整数型数组、并设置初始值
变量 d 为 文本型[]  '定义一个文本型数组、不设置初始、默认为空对象
变量 e = { "vcn", "studio" }  '定义一个文本数组
变量 f = { 1,2,3 }  '定义一个整数数组

注意:数组仅支持基本数据类型推断;不支持对象、变量或函数作为初始值。

事件

用于在程序中与用户交互的重要操作。

  • 定义事件

    • 轻舟支持在模块或自定义组件中;定义向外分发的事件;定义事件格式:

      公开 事件 数据被调用(参数 为 文本型)
      
  • 接收事件

    • 接收用户操作的回调;例如:监听用户点击了窗口中的按钮;我们要在代码中接收这个点击事件、并向用户弹出一个提示:

      事件 按钮1.被单击(来源对象 为 视图)
          '当用户点击窗口中的按钮组件、将会触发该事件
          弹出提示("用户点击了按钮1、我弹出了一个提示回应用户!")
      结束 事件
      

      注意:事件是组件特有的属性、一般由组件开发者封装好指定事件、普通开发者无需关心事件的具体实现方式、只需要使用事件即可。

函数

函数可以理解为是由一条或多条语句的集合、比如一个函数中有多条语句、而多条语句共同处理一个计算或逻辑、在一起执行某个功能。

  • 函数的分类:

    • 无返回值函数
    • 有返回值函数
  • 函数修饰符

    • 私有

    • 静态

函数声明格式:

'无返回值函数
函数 [修饰符] 函数名称(参数1 为 数据类型,参数2 为 数据类型)

结束 函数

'有返回值函数
函数 [修饰符] 函数名称(参数1 为 数据类型,参数2 为 数据类型) 为 数据类型
    返回 ...指定类型值
结束 函数

示例代码:

' 无返回值函数
函数 设置按钮标题(内容 为 文本型,按钮对象 为 按钮)
    按钮对象.标题 = 内容
结束 函数

'有返回值函数
函数 计算面积(长 为 整数型,宽 为 整数型) 为 整数型
    返回 长 * 宽
结束 函数

注:未添加修饰符的函数默认为公开修饰

定义

在轻舟中定义关键字用于自定义结构体数据类型、回调接口实现类。

  • 定义自定义结构体

    定义 坐标 为 结构
        变量 X 为 整数型
        变量 Y 为 整数型
    结束 定义
    
  • 定义回调事件实现

    按钮1.置被单击回调(监听按钮被单击回调)
    按钮2.置被单击回调(监听按钮被单击回调)
    '....
    定义 监听按钮被单击回调 为 视图.被单击回调
        事件 被单击(被单击组件 为 视图)
            变量 被单击按钮 = (视图)被单击组件
            弹出提示("按钮 " + 被单机按钮.标题 + " 被单击")
        结束 事件
    结束 定义
    

    上述代码释义:

    监听按钮被单击回调:自定义的接口回调名称、用于在组件设置回调时使用。

    视图.被单击回调:组件中的接口类、用户无需关心具体实现方式

    被单击:接口中的回调事件

    执行说明:当给按钮1、按钮2注册这个回调接口后、当用户点击按钮1、按钮2就会触发这个接口里面的“被单击”事件、此时事件中返回的 被单击组件 就是被单击的按钮对象。我们再判断按钮对象为那个按钮即可知道用户单击的按钮是那一个;从而执行相关的代码。