按键精灵安卓版设置:按键精灵安卓版
按键精灵安卓版设置:按键精灵安卓版当时文章留言中有人说到用json和table转化保存,这种方式代码更加简洁一些,所以这次就优化了一下代码。之前也写过一期相关的文章《【界面进阶教程下篇】保存和加载多套界面配置数据》,和这篇文章的原理完全一样。
本期教程我们来说说怎么实现共享界面配置,先来看一下效果图。
这是一个实现多个模拟器界面设置互通的效果,当你修改其中一个模拟器界面配置,保存下来以后,其他脚本只需要加载一下就可以获取到你修改后的界面设置。
之前也写过一期相关的文章《【界面进阶教程下篇】保存和加载多套界面配置数据》,和这篇文章的原理完全一样。
当时文章留言中有人说到用json和table转化保存,这种方式代码更加简洁一些,所以这次就优化了一下代码。
先说一下原理:
- 模拟器在电脑上有一个共享文件夹,在这个文件里面的内容所有模拟器都可以获取到。
- 我们把界面设置保存下来,存入共享文件里面的一个文本中。
- 其他模拟器通过获取这个文本里面的界面设置内容,然后设置当前界面。
通过共享文件夹中的一个文本为媒介,然后所有模拟器都可以实现界面设置互通。
先来说一下界面元素,
2个按钮、2个多选框、2个文字框和两个输入框
按钮是控制界面保存和加载;
多选框和输入框是我们要记录和修改的界面元素。
这里元素不多,只是做个基础的演示。
先来看一下保存功能的代码:
Function 保存()
Dim duo1=uip.GetAttribute("多选框1")
Dim duo2=uip.GetAttribute("多选框2")
Dim shu1=uip.GetAttribute("输入框1")
Dim shu2=uip.GetAttribute("输入框2")
Dim t={"多选框1":duo1["选中"] "多选框2":duo2["选中"] "输入框1":shu1["初始文本"] "输入框2":shu2["初始文本"]}
Dim json=Encode.TableToJson(t)
file.write("/sdcard/pictures/4.txt" json)
End Function
具体步骤是:
(1)读取各个元素的“有效”内容
Dim duo1=uip.GetAttribute("多选框1")
Dim duo2=uip.GetAttribute("多选框2")
Dim shu1=uip.GetAttribute("输入框1")
Dim shu2=uip.GetAttribute("输入框2")
(2)存成table(表),每一项要写仔细了,不能出现错误。
元素名---获取的对应的元素值 "多选框1":duo1["选中"]
Dim t={"多选框1":duo1["选中"] "多选框2":duo2["选中"] "输入框1":shu1["初始文本"] "输入框2":shu2["初始文本"]}
(3)把table转出json(其实json就是格式比较特殊的字符串,json就是字符串)
Dim json=Encode.TableToJson(t)
(4)把json存入文本里面
file.write("/sdcard/pictures/4.txt" json)
再来说说加载部分:
Function 加载()
Dim json=file.read("/sdcard/pictures/4.txt")
showmessage json
Dim table=Encode.JsonToTable(json)
uip.SetAttribute("多选框1" {"选中":table["多选框1"]})
uip.SetAttribute("多选框2" {"选中":table["多选框2"]})
uip.SetAttribute("输入框1" {"初始文本":table["输入框1"]})
uip.SetAttribute("输入框2" {"初始文本":table["输入框2"]})
End Function
(1)读取文本里面json文件
Dim json=file.read("/sdcard/pictures/4.txt")
(2)把json转成表格,这样可以快速读取每一个想要的内容。
Dim table=Encode.JsonToTable(json)
(3)把读取到每一个界面设置内容,填入到界面中
uip.SetAttribute("多选框1" {"选中":table["多选框1"]})
uip.SetAttribute("多选框2" {"选中":table["多选框2"]})
uip.SetAttribute("输入框1" {"初始文本":table["输入框1"]})
uip.SetAttribute("输入框2" {"初始文本":table["输入框2"]})
这个是适合本地多开模拟器使用的方式,对于手机或者其他非本地设备,就需要云配置了,也就是保存和读取服务器了。