android 怎么样知道数据发生变化,android中如何判断edittext中数据为空?

今天写了一个简单的记忆便笺小程序,但是却发现在判断添加数据不能为空的时候,自己的代码总是不起作用。

String titleStr = addtitle.getText().toString();

String contentStr = addcontent.getText().toString();

if (titleStr == null && contentStr == null) {

Toast.makeText(this, "不能添加一个空数据", Toast.LENGTH_SHORT).show();

} else if (titleStr == null) {

Toast.makeText(this, "请添加标题", Toast.LENGTH_SHORT).show();

} else {

DataUtils.addFile(titleStr, contentStr, this);

Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();

}

不行~~~

改进后:

if (titleStr == "" && contentStr == "") {

Toast.makeText(this, "不能添加一个空数据", Toast.LENGTH_SHORT).show();

} else if (titleStr == "") {

Toast.makeText(this, "请添加标题", Toast.LENGTH_SHORT).show();

} else {

DataUtils.addFile(titleStr, contentStr, this);

Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();

}

依然不行

上网搜集了一些资料,原来不止我遇到了这个问题呀~~~~解决方法粘贴如下:

0818b9ca8b590ca3270a3433284dd417.png

在android中 TextUtils.isEmpty()和equals()方法的用法

对于一个UI界面中,当判断用户是否输入用户名或密码时,我们常用TextUtils.isEmpty()方法来判断;但有时也可以用这个equals()方法,都可以来判断EditText中是否为空,但有时很纠结,不知道这两种方法中哪个比较好?为什么?请哪位知道的大侠详细帮助解答一下,菜鸟成分感谢!

仔细读官方的API: Returns true if the string is null or 0-length. 意思好像就是看参数是否为空或0长度。因为你从EditText返回的是一个变量。如果这个变量本身为null值,那么你掉它的equals方法是要报错的。但是如果你调用TextUtils.isEmpty() 把这个变量作为参数传进去。只要这个参数为空或者为“”,都会返回真。所以,用官方给的更加严谨。而且。也十分方便。因为你单独去判断你还不是要写一个if语句判断。返回的还是一个boolean值,为何别人铺好的路不走呢?

TextUtils.isEmpty(str)与str.isEmpty()有区别吗?哪个更好?请写出原因

就返回结果的情况来看,有一个区别,就是当 str 是空(null)或空串(”“)时 TextUtils.isEmpty(str) 返回 true,否则返回 false。而当空(null)时 str.isEmpty() 会空指针异常。

就效率上来看, str.isEmpty() 要比 TextUtils.isEmpty() 快,因为如果看官方源码的话可以发现 TextUtils.isEmpty() 判断了两步,先判断 == null,再判断 .length == 0。而前者只判断 .length == 0。

从结构上上看,TextUtils.isEmpty(str) 是一个静态方法,而 str.isEmpty() 是 String 类的对象所拥有的方法。

_____________________________对不起,请原谅我,谢谢你,我爱你

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值