Является ли метод String isEmpty действительно недоступным в Уровнях API API <10?

Я использую NetBeans и nbandroid для создания своего приложения для Android. Раньше я ориентировался на уровень API 10 (2.3.3), но я понял, что при этом я исключаю слишком много людей из своего приложения, и (я думал) мое приложение не использовало никаких функций, которые превышали уровень API 7. Однако после Изменение моего уровня API в свойствах проекта в NetBeans, мой проект не будет компилироваться и не скомпилировать myString.isEmpty() . Я знаю, что это легко фиксируется / заменяется, но String.isEmpty действительно недоступен до уровня API 10? Если нет, как мне исправить мой проект nbandroid ? Я заметил, что даже после того, как я выбираю уровень API в свойствах проекта, под библиотеками он всегда говорит Android 2.3.3.

Вероятно, это говорит о том, что вы используете библиотеку 2.3.3, поскольку у вас есть targetSdk установленный в 2.3.3.


При минимальном SDK более 2,2 (8) вы потеряете 27,1% аудитории

При минимальном SDK более 2,1 (7) вы потеряете 6,2%

При минимальном 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

Ref:

Ссылка на статистику

Более эффективный способ проверить, является ли строка пустой (в отсутствие метода isEmpty ), состоит в том, чтобы проверить, что ее длина равна 0 по сравнению с использованием equals , как в:

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

На самом деле, это то, что isEmpty делает за сценой.

IsEmpty добавлен API 9. ( Ссылка )

Вы все равно можете преобразовать свое приложение в API 7, если хотите, вам нужно будет использовать String.length() != 0 а не isEmpty();

Вот документация. Он доступен от API 9 и дальше. Как вы сказали, его довольно легко заменить.

Он там, начиная с девятого уровня .

Intereting Posts
Какой уровень API для использования с поддержкой библиотеки Android? Невозможно выбрать опцию в веб-обозревателе Android. Как я могу динамически выбирать, какую активность запускать при открытии приложения? Ограничение соединения mqtt mosquitto linux Android Mediaplayer: проблема setDataSource для загруженного медиафайла Что такое RecyclerView.Adapter в списке ListView.Adpater.isEnabled () ImageView не отображается на Android TextureView авторотирует видеопоток на Nexus4 (но не на Galaxy S4) Можно ли удалить разрешения из приложения Android? BroadcastReceiver не работает точно, если не зарегистрировано вручную FileNotFoundException: невозможно прочитать настройки анонимности, не сообщая о каких-либо значениях: /Users/mac/.android/analytics.settings (Permission denied) Java.lang.UnsatisfiedLinkError: Не удалось загрузить stlport_shared: findLibrary возвратил null (tess-two) Утрата электронной почты, игнорирующая прерывания строки в предустановленном тексте (Android) Поддерживает ли библиотека поддержки v4 новые классы, когда они доступны? Как передать намерение от TabActivity к его дочерней активности