关于安卓按键ui界面上的数据重启丢失的原因

举个简单的例子看一下:

填写完整的样子如下图~

关于安卓按键ui界面上的数据重启丢失的原因_第1张图片

点击界面下方保存按钮,重新预览界面的样子如下图:

关于安卓按键ui界面上的数据重启丢失的原因_第2张图片

当对比两张图片会发现,输入框内容和多选框选中状态都有变化。

这个问题在编写界面功能比较多的脚本的时候,很容易出现。

我们来看一下界面布局代码,在输入框名称这个属性上,两个输入框是完全一样的,同样多选框也是这个问题。

关于安卓按键ui界面上的数据重启丢失的原因_第3张图片

关于安卓按键ui界面上的数据重启丢失的原因_第4张图片

你可能会说这有啥问题,其实问题就是因为界面元素重名造成的,按键在存储界面数据的时候,并不区分多个输入框、多个多选框、多个下拉框,而是通过记录名称和内容数据。

我们来看一下它的具体存储形式:打开设备上按键的ui配置文件夹。

关于安卓按键ui界面上的数据重启丢失的原因_第5张图片

根据日期我们能看出来,第二个文件是刚刚我测试生成的ui配置文件。因为名字太长,为了不写错名字,我们通过遍历命令读取一下吧。

关于安卓按键ui界面上的数据重启丢失的原因_第6张图片

当前脚本第4行:{"输入框1":"这是第2句话","多选框1":true,"下拉框1":1}

我单独提出来看一下,ui配置文件里面只有 名字和可读取的内容,那么当面名字一样的时候,它们就会被抵消,只显示其中的一个。

当然,这个重名不仅限于同样的界面元素,对于不同界面元素是一样的,比如你把多选框的名称就写成“输入框1”,那对于界面来说它是不能区分到底是多选框还是输入框的,只认名字,从而出现混乱。

那么我们来说编写复杂界面的时候,一定要注意,界面中所有涉及到到“名称:”的地方,名字都不要重复。

另外还有一点,就是多选框、下拉框、按钮还有一个点击响应事件,这个属性也不要重名。

关于安卓按键ui界面上的数据重启丢失的原因_第7张图片

这个问题也是大家经常问的,所以专门写一篇文章,更多内容可以查看往期文章

你可能感兴趣的:(按键精灵)