3

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

4

5 回答 5

4

检查字符串是否为空(没有isEmpty方法)的更有效方法是检查其长度是否为 0 与 using equals,如:

if ( myString.length() == 0 )
{
  // is emtpy
}

实际上,这isEmpty就是幕后所做的。

于 2012-05-15T19:15:17.540 回答
3

isEmpty 是在 API 9 中添加的。(参考

如果您愿意,您仍然可以将您的应用程序转换为 API 7,您需要使用String.length() != 0而不是isEmpty();

于 2012-05-15T18:36:00.243 回答
2

它可能仍然说您使用 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 实现,您需要记住您的字符串可能为空或充满空格(从技术上讲是空的):

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

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

参考:

统计参考

于 2012-05-15T18:38:29.717 回答
2

是文档。它可从 API 9 及更高版本获得。正如你所说,它很容易被替换。

于 2012-05-15T18:35:58.263 回答
1

它就在那里,从九级开始

于 2012-05-15T18:35:48.760 回答