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
содержимое не было сохранено в первую очередь... что вы, очевидно, запрограммированы, верно? Плюс я предполагаю, что это была пустая строка.