奇葩问题-TextView无法获取值

问题场景

前几天写一个界面的时候,遇到一个非常奇葩的问题。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搞错了,出现张冠李戴了。虽然问题很简单,但是的确要细心。这些是在下班的路上想的,晚上记录下,就当笔记吧。

时间: 2024-10-12 13:44:49

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

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

表单作如下定义:该input使用easyui的"easyui-textbox" 1 <input id="addSnumber" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="snumber" data-options="required:true, missing

jsp页面通过使用s标签获取值栈中的值(初识)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitio

httpHelper 从URL获取值

/// <summary> /// 从URL获取值(字符串) /// </summary> public static string GetValueFromUrl(string key) { string keyvalue = HttpContext.Current.Request.QueryString[key]; if (keyvalue != null) { keyvalue = KillBadString(keyvalue); return keyvalue; } ret

记一次Jquery获取值的典型错误

直接上代码: 代码很简单,通过Post的形式提交参数,但是发现提交的data总是空,昨晚有点纳闷,今天一看才发现... 获取值得时候的顺序有问题,获取值应该是在onclick事件中. 综上:写Jquery的时间还是太短了,太年轻啊,经验技术都需要积累.

[转]jna模拟指针开辟空间,数组首地址获取值

http://blog.csdn.net/zhuzhichao0201/article/details/5817819 不是很明白,先记在这里 ------------------------------------------------------------ dll里面给的函数如下:ReadWordBlock(HANDLE hScanner,  BYTE EPC_WORD,  BYTE *IDBuffer,  BYTE mem,  BYTE ptr,  BYTE len,  BYTE *D

jquery获取值

jquery取radio单选按钮的值$("input[name='items']:checked").val(); jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关 获取一组radio被选中项的值 var item = $('input[name=items][checked]').val(); 获取select被选中项的文本 var item = $("select[name=items]

miniUI 可编辑datagrid获取值的问题

<div id="variableGrid" class="mini-datagrid" borderStyle="border-right:0px;border-top:0px;" style="height: auto;"> <div property="columns"> <div field="varCode" name="varCode&

WebElement接口获取值

通过WebElement接口获取值 size 获取元素的尺寸 text 获取元素的文本 get_attribute(name) 获取属性值 location 获取元素坐标,先找到要获取的元素,再调用该方法 page_source 返回页面源码 driver.title 返回页面标题 current_url 获取当前页面的URL is_displayde() 判断该元素是否可见 is_enabled() 判断元素是否被使用 is_selected() 判断元素是否被选中 tag_name 返回元素

根据枚举类型获取值

之前做过一个通过枚举获取枚举的值,其实很简单,但在网上看到很多人都给弄复杂了,自己也弄迷糊了好几次:现在一定要记录下来,以防自己或别人再犯同样的错误: 枚举如下: public enum status    {        a= -1,        b= 0,        c= 1,        d= 2 } 现在需要通过枚举获取值,比如通过a获取-1,可以这样写:(int)status.a 如果想通过-1获取a的话可以这样:Enum.GetName(typeof(status),-1)