问题场景

前几天写一个界面的时候,遇到一个非常奇葩的问题。app第一次安装的时候,这里针对用户第一次安装的时候,后来是不会出现这个问题了。我明明是对某个界面的一个textview赋值了,而且服务端也返回了值了,我都debug了,那一行代码是运行的,但是始终返回的都是null.我纳闷了半天,为啥呢? 我一直debug了好几遍啊,没错啊,什么原因啊。难道我今天撩妹了吗?不再帅了吗?我偷人家桌子零食遭报应了吗?不不,不会的。即使我真的干了缺德的事了,这个代码是没错啊。我后来继续看下面代码,发现这个textview在多个地方要被赋值,那么也就是说这个textview要在不同的场景获取值。我又发现这个值都是同一个,就是一个电话号码。那么为什么被多次赋值呢,这是因为从不同的入口进入这个页面的,获取值的方式也不一样。而我当时的场景是这样的: 我从A页面进入C页面,那个textview确实拿到值了,但是这个textview在下面又被赋值了,这个是B页面进入到C页面的,而B页面还没请求服务端呢,它的值当然是null了。那么问题来了:为什么不把这个电话号码拿到之后存起来放在sp或者sqlite3作为一个全局的值?因为第一次app启动的时候,有的用户有可能从a进入c,有的用户可能从b进入c,场景不一样,所以就两个地方都需要请求电话号码的值,我后来给后端的同学建议能不能把这个号码放在启动页面那个接口里,因为这个界面是最初始且是必然经过的页面。这样就后端不用到处存号码了,方便后来人维护代码,不然会好奇,为啥要多个地方返回电话号码呢?

一点思考

我后来仔细做出总结:一般会有两种情况导致的  1.该控件在多处被赋值,即使被赋有效值了,但是在其他地方被覆盖了。2.虽然有值了,但是可惜的是,给其他的控件赋值了,也就是控件的id搞错了,出现张冠李戴了。虽然问题很简单,但是的确要细心。这些是在下班的路上想的,晚上记录下,就当笔记吧。

奇葩问题-TextView无法获取值的更多相关文章

  1. CheckBox复选框全选以及获取值

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. 通过form表单获取值

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  3. jQuery 的三种获取值的方式

    本节内容主要介绍的是如何使用jQuery中的.html(),.text()和.val()三种方法,用于读取,修改元素的html结构,元素的文本内容,以及表单元素的value值的方法.jQuery中为我 ...

  4. 今个忽然晓得,原来radio不是普通去获取值的!

    今日,写js校验.对于不太会的,总是陌生的.碰见radio的取值,习惯的用document.getElementsByName("")[0].value去获取值,却忘记了radio ...

  5. easyUI validatebox设置值和获取值,以及属性和方法

    一:表单元素使用easyui时,textbox和validatebox设置值和获取值的方式不一样[转] 1.为text-box设置值只能使用id选择器选择表单元素,只能使用textbox(" ...

  6. easyui-textbox 和 easyui-validatebox 设置值和获取值

    表单作如下定义:该input使用easyui的"easyui-textbox" <input id="addSnumber" style="wi ...

  7. JavaScript经典代码【一】【javascript HTML控件获取值】

    javascript HTML控件获取值 1.下拉列表框选定值 ddlPageSize.options[ddlPageSize.selectedIndex].value ddlPageSize.opt ...

  8. 对于json对像,怎么遍历json对象的所有key,在使用json对象时,如果无法知道key,怎么通过key变量来获取值

    对于json对像,怎么遍历json对象的所有key,在使用json对象时,如果无法知道key,怎么通过key变量来获取值?请参阅下面的关键代码: <html> <head> & ...

  9. 基于jquery的表格动态创建,自动绑定,自动获取值

    最近刚加入GUT项目,学习了很多其他同事写的代码,感觉受益匪浅. 在GUT项目中,经常会碰到这样一个问题:动态生成表格,包括从数据库中读取数据,并绑定在表格中,以及从在页面上通过jQuery新增删除表 ...

随机推荐

  1. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  2. CoreCRM 开发实录 —— Profile

    再简单的功能,也需要一坨代码的支持.Profile 的编辑功能主要就是修改个人的信息.比如用户名.头像.性别.电话--虽然只是一个编辑界面,但添加下来,涉及了6个文件的修改和7个新创建的文件.各种生成 ...

  3. Oracle 的基本操作符

    != 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...

  4. CSS 特殊属性介绍之 pointer-events

    首先看一下 MDN 上关于 pointer-events 的介绍: CSS属性 pointer-events 允许作者控制特定的图形元素在何时成为鼠标事件的 target.当未指定该属性时,SVG 内 ...

  5. app引导页(背景图片切换加各个页面动画效果)

    前言:不知不觉中又加班到了10点半,整个启动页面做了一天多的时间,一共有三个页面,每个页面都有动画效果,动画效果调试起来麻烦,既要跟ios统一,又要匹配各种不同的手机,然后产品经理还有可能在中途改需求 ...

  6. 如何快速优化手游性能问题?从UGUI优化说起

    WeTest 导读   本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法.   在之前的文 ...

  7. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  8. CRL快速开发框架系列教程三(更新数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  9. ASP.NET Core 中文文档目录

    翻译计划 五月中旬 .NET Core RC2 如期发布,我们遂决定翻译 ASP.NET Core 文档.我们在 何镇汐先生. 悲梦先生. 张仁建先生和 雷欧纳德先生的群中发布了翻译计划招募信息,并召 ...

  10. Ajax使用WCF实现小票pos机打印源码

    通过ajax跨域方式调用WCF服务,实现小票pos机的打印,源码提供web方式,客户端方式测试,服务驻留右侧底部任务栏,可控制服务开启暂停,用户可自定义小票打印模板,配合零售录入. qq  22945 ...