Android savedInstanceState.getString()仅适用于API 21警告?

Android savedInstanceState.getString()仅适用于API 21警告?,android,android-studio,getstring,Android,Android Studio,Getstring,因此,我正在覆盖onrestoreinnstancestate()以在屏幕翻转时恢复数据,并在内部调用getString()以设置EditText实例的文本: @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); mEditText.setText(savedInstanceSta

因此,我正在覆盖onrestoreinnstancestate()以在屏幕翻转时恢复数据,并在内部调用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”

问题是,尽管我收到了警告,但当我在安卓设备上运行应用程序(版本4.0.3-API15)时,它运行得很好

我的min SDK设置为Froyo

我的目标是棒棒糖

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

来自

publicstringgetstring(字符串键,字符串默认值)
在API级别12中添加

除此之外,代码似乎很好,正如您所说的,在API 15上工作正常。也许你把“12”误读为“21”

但是,您的代码在API 12下仍然无法工作。由于仅当保存的实例状态不为null时才会调用restoring方法,因此您可以使用类似以下内容:

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

只有当
EditText
内容没有首先保存时,才会设置
消息\u empty
文本。。。显然是你编的程序,对吧?另外,我假设它是一个空字符串。

也许我错了,但是
EditText
可以跨方向记住文本,不是吗?我开始使用Android,所以我不知道这一点。谢谢你的提示:)嗨,欧根,谢谢你的回答!我已将min SDK更改为12,警告不再出现。是的,它显示了API21,而不是12——我想这是一个bug。不!如果你按照我的建议重写了电话,警告也会消失,而且运行旧版本Android的设备仍然可以运行你的应用程序。如果你每次遇到这种bug时都使用minSDK,那么你很快就21岁了:为了兼容性,我会努力解决它。哎呀,你说得对,Eugen!我已经将min SDK设置回8,并且按照您所说的更改了代码,警告消失了。非常感谢你,尤金=)