laogui 发表于 2023-3-15 19:50:29

【EasyClick】【安卓UI】XML 基础教程~界面交互

XML 基础教程~界面交互
相关文件认知



[*]main.js 主脚本入口
[*]ui.js UI界面运行入口
[*]main.xml UI界面文件

一个 main.xml 例子


<ScrollView xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:android="http://schemas.android.com/apk/res/android"
            xsi:noNamespaceSchemaLocation="layout.xsd"
            android:layout_height="match_parent"
            android:layout_width="match_parent">
    <LinearLayout android:layout_height="match_parent"
                  android:layout_width="match_parent"
                  android:orientation="vertical"
                  android:padding="20dp">
      <LinearLayout android:orientation="horizontal"
                        android:layout_height="match_parent"
                      android:layout_width="match_parent">
            <Button
                     android:layout_height="match_parent"
                  android:layout_width="0dp"
                  android:text="我是测试按钮"
                  android:layout_weight="1"
                  android:tag="btn"/>
      </LinearLayout>
    </LinearLayout>
</ScrollView>


上述 main.xml 对应的 ui.js 例子

function main() {
    ui.layout("参数设置", "main.xml");
    //UI 的main.xml 里面有个按钮控件 这里来操作下这个按钮
    ui.setEvent(ui.btn, "click", function (view) {// 使用ui.setEvent(控件tag,操作,事件函数)函数来操作按钮控件
   
      var s = ui.saveAllConfig();//保存修改后的参数
      ui.start();// 启动脚本
    });
}

main();

上述 main.js 对应的例子
function main() {
    //开始再这里编写代码了!!
    //如果自动化服务正常
    if (!autoServiceStart(3)) {
      logd("自动化服务启动失败,无法执行脚本")
      exit();
      return;
    }
    logd("开始执行脚本...")
    logd(device.getScreenWidth()+"    "+ device.getScreenHeight());//获取屏幕宽高并打印
    logd(JSON.stringify(getConfigJSON()));//获取所有的UI配置参数,输出字符串
    // 读取单个UI参数配置函数参数为 定义的xml中tag 字符串
    logd("年龄: " + readConfigString("age"));
    logd("听音乐: " + readConfigString("music"));
    logd("是不是一年级: " + readConfigString("one"));
    logd("备注: " + readConfigString("mark"));
}
/**
* 这个函数是检测自动服务的
*/
function autoServiceStart(time) {
    for (var i = 0; i < time; i++) {
      if (isServiceOk()) {
            return true;
      }
      var started = startEnv();
      logd("第" + (i + 1) + "次启动服务结果: " + started);
      if (isServiceOk()) {
            return true;
      }
    }
    return isServiceOk();
}
main();




其他更多的控件操作方式

//Switch 开关按钮的用法
    // 开关按钮的监听事件
    ui.setEvent(ui.auto_env, "checkedChange", function (view, isChecked) {
      ui.logd("tag为 auto_env isChecked " + isChecked);// isChecked 是当前被选中与否时的状态值(布尔类型)
      if (isChecked) {
            startAutoEnv();
      }
    });
    // 判断自动化服务是否开启
    if (ui.isServiceOk()) {
      ui.auto_env.setChecked(true);
    } else {
      ui.auto_env.setChecked(false);
    }
    // EditText 编辑框的用法
    var name =ui.name.getText()+"";// 读取当前的值
    ui.logd("tag为name的值: " + name);
    ui.name.setText("我是name的值");//设置值
    // Spinner 下拉选择框用法
    var sex = readConfigString( "sex");// 读取当前的值
    ui.logd("tag为 sex 的值: " + sex);
    // 下拉选择框的监听事件
    ui.setEvent(ui.sex, "itemSelected", function (position, value) {
      ui.logd("tag为 sex itemSelected " + value);
ui.save("sexValue",value);// 存储选中项的值
ui.save("sexPosition",position);// 存储哪一项被选中
    });

    // RadioButton 单选框用法
    var three =ui.three.isChecked();// 读取当前的值
    ui.logd("tag为 three 的值: " + three);
    // 单选框的监听事件
    ui.setEvent(ui.three, "checkedChange", function (view, isChecked) {
      ui.logd("tag为 three isChecked " + isChecked);// isChecked 是当前被选中与否时的状态值(布尔类型)
    });
    // CheckBox 复选框用法
    var dance = ui.dance .isChecked(); // 读取当前的值
    ui.logd("tag为 dance 的值: " + dance);
    // 复选框的事件
    ui.setEvent(ui.dance, "checkedChange", function (view, isChecked) {
      ui.logd("tag为 dance isChecked " + isChecked);// isChecked 是当前被选中与否时的状态值(布尔类型)
      //这里面是保存修改后的操作
    });

    // saveAllBtn 保存参数 按钮事件 可以和启动写一个按钮里
    ui.setEvent(ui.saveAllBtn, "click", function (view) {
      var s = ui.saveAllConfig();//保存修改后的参数
      ui.logd("保存所有参数结果 " + s)
    });

    // 系统设置按钮 事件
    ui.setEvent(ui.systemSetting, "click", function (view) {
      ui.openECSystemSetting();

    });
    // 启动脚本按钮事件 可以和保存写一个按钮里
    ui.setEvent(ui.startBtn, "click", function (view) {
      ui.start();
    });
    // 启动环境 按钮事件
    ui.setEvent(ui.envBtn, "click", function (view) {
      //异步启动环境,如果成功了就设置auto_env 按钮的状态
      startAutoEnv();
    });
    //获取所有的UI参数
    ui.logd("获取所有的UI参数:" + ui.getConfigJSON());


**** Hidden Message *****

zzcqm 发表于 2023-6-4 21:19:54

其他更多的控件操作方式

ooxxooxx 发表于 2023-6-14 15:38:26

怎么自定义功能

laogui 发表于 2023-6-15 00:25:57

ooxxooxx 发表于 2023-6-14 15:38
怎么自定义功能

什么功能

yh4132990 发表于 2023-6-15 21:12:37

的点点滴滴多多多

一刀 发表于 2023-6-23 07:00:57

看看现在完全不知道UI怎么玩....

kaifeng 发表于 2023-7-20 04:04:04

感谢isawgkj\

call99168 发表于 2023-7-29 10:31:38

1111111111111111111111111111

龙龙爱编程 发表于 2023-8-4 00:34:48

666666666666666666666666666666666666666666666666666666

vdaoren 发表于 2023-8-5 04:54:16


其他更多的控件操作方式
页: [1] 2
查看完整版本: 【EasyClick】【安卓UI】XML 基础教程~界面交互