我正在使用NetBeans和nbandroid构建我的Android应用程序。以前,我的目标是API级别10(2.3.3),但是我意识到这样做会排除应用程序中的太多用户,并且(我认为)我的应用程序未使用超过API级别7的任何功能。在NetBeans的项目属性中更改我的API级别,我的项目将无法编译,并且在编译myString.isEmpty()条件时失败。我知道这很容易修复/替换,但是String.isEmpty在API级别10之前真的不可用吗?如果没有,我该如何修复nbandroid项目?我注意到即使在项目属性中选择API级别后,在库下它始终显示为Android 2.3.3。

最佳答案

它可能仍然说您使用2.3.3库,因为targetSdk设置为2.3.3。

如果Min SDK超过 2.2(8),您将失去 27.1%的受众群体

如果Min SDK超过 2.1(7),您将失去 6.2%

如果Min SDK超过 1.6(6),您将失去 0.7%

因此,如果您不想针对 2.3(9)定位,则由您决定。

(我个人建议您将minSdk设置为2.2(8),并指定3.0(11))

至于String.isEmpty()

 if("".equals(String)){
   // is Empty
 }

要么
 if(!"".equals(String) && String != null){
   // is Not Empty
 }

对于完整的isEmpty实现,您需要记住您的字符串可能为null或充满空格(从技术上来说是空的):
 if(String != null && "".equals(String.trim())){
   // is Empty
 }

检查null允许您在没有NullPointerException的情况下调用trim()方法

参考:

Stats reference

10-07 23:33