saveInstanceState.getString() доступно только для предупреждения API 21?

Поэтому я переопределяю onRestoreInstanceState() для восстановления данных, когда экран переворачивается, и внутри я вызываю getString(), чтобы установить текст экземпляра EditText:

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);

    mEditText.setText(savedInstanceState.getString(TYPED_TEXT, String.valueOf(R.string.message_empty)));       

}

Затем Android Studio 1.0.2 подчеркивает getString() и затем выдает мне предупреждение: "Длявызова требуется API-уровень 21"

Дело в том, что, хотя я получаю предупреждение, когда я запускаю приложение на устройстве Android (версия 4.0.3 - API 15), оно работает просто отлично!

Мой минимальный SDK установлен на Froyo

Мой целевой SDK для Lollipop

Кто-нибудь знает, почему я получаю это предупреждение?

1 ответ

Решение

От BaseBundle документы

public String getString (String key, String defaultValue) Добавлено в API уровень 12

Кроме того, код выглядит нормально и, как вы сказали, правильно работает на API 15. Возможно, вы неправильно прочитали "12" как "21"?

Тем не менее, ваш код не будет работать ниже API 12. Поскольку метод восстановления вызывается только тогда, когда состояние сохраненного экземпляра не равно нулю, вы можете использовать что-то вроде этого:

mEditText.setText(savedInstanceState.getString(TYPED_TEXT));

message_empty текст будет установлен только если EditText содержимое не было сохранено в первую очередь... что вы, очевидно, запрограммированы, верно? Плюс я предполагаю, что это была пустая строка.

Другие вопросы по тегам