1

因此,当屏幕翻转时,我将覆盖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)上运行该应用程序时,它工作得很好

我的 min SDK 设置为 Froyo

我的目标 SDK 到 Lollipop

有人知道我为什么会收到这个警告吗?

4

1 回答 1

0

BaseBundle文档

public String getString (String key, String defaultValue) 在 API 级别 12 中添加

除此之外,代码看起来不错,并且正如您所说的在 API 15 上正常工作。也许您将“12”误读为“21”?

您的代码仍然无法在 API 12 下运行。由于仅当保存的实例状态不为空时才调用恢复方法,因此您可以改用以下内容:

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

只有在最初没有保存内容的情况下才会设置文本……你显然是这样编程的,对吧message_emptyEditText另外,我认为它是一个空字符串。

于 2015-02-01T23:27:12.507 回答