2016-08-29 12 views
1

Я хотел бы удалить предупреждение об устаревании для Html.fromHtml(string).Android: удалить предупреждение об устаревании для Html.fromHtml

Я пытался сделать так:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { 
     htmlSpanned = Html.fromHtml(string,Html.FROM_HTML_MODE_LEGACY); 
    } else { 
     //noinspection deprecation 
     htmlSpanned = Html.fromHtml(string); 
    } 

, но она по-прежнему дает мне предупреждение во время компиляции:

Предупреждение: (18, 31) [устаревания] fromHtml (String) в Html был устарел

+0

Ваш minSdkVersion выше или ниже 24? –

+0

в моем файле Gradle У меня есть: minSdkVersion 15, targetSdkVersion 24 –

ответ

3

Ну, однопараметрический fromHtml() устарел. В Build проверки убедитесь, что вы не вызов это на старых устройствах, но это не меняет того факта, что это устаревшее с compileSdkVersion из 24.

У вас есть четыре варианта:

  1. Дроп ваш compileSdkVersion ниже 24. Это приводит к эффектам ряби (например, вы не можете использовать версии библиотек поддержки 24.xx) и не является отличным вариантом.

  2. Установите minSdkVersion на 24 и избавитесь от однопараметрического вызова fromHtml(). Это нецелесообразно в 2016 году.

  3. Живите с зачеркиванием и жалобой Линта.

  4. Добавить подходящую @SuppressLint аннотацию к методу, чтобы заставить IDE перестать жаловаться.As Ahlem Jarrar notes, самый простой способ добавить это через быстрое исправление.

0

Вы можете попробовать. Я имею в виду, что ваш код выглядит хорошо, я попробовал, и это сработало для меня.

// получить наш HTML содержание

String htmlAsString = getString(R.string.html); 
Spanned htmlAsSpanned = Html.fromHtml(htmlAsString); 

// используется TextView

// устанавливаем содержимое HTML на TextView

TextView textView = (TextView) findViewById(R.id.textView); 
textView.setText(htmlAsSpanned); 

Наш вы можете попробовать это:

@SuppressWarnings("deprecation") 
3

Если ваш minSdkVersion- 24 или выше, используйте версию fromHtml() that takes some flags as a parameter. AFAIK, FROM_HTML_MODE_LEGACY будет значением флага, которое будет использоваться для совместимости со старым флагом, отличным отHtml().

Если minSdkVersion ниже 24, ваш выбор:

Всегда используйте fromHtml() вы, возможно, с помощью быстрого исправления (Alt-Enter) подавить предупреждение Lint

Использование обе версии fromHtml(): тот, который берет флаги, если ваше приложение работает на устройстве уровня API 24+, или в одном без флагов на старых устройствах.