savedInstanceState.getString() 仅适用于 API 21 警告?
savedInstanceState.getString() only available for API 21 warning?
所以我重写 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() 然后给我一个警告:“Call requires API 21级"
问题是,虽然我收到警告,但当我 运行 在 Android 设备上使用该应用程序时(版本 4.0.3 - API 15) 它工作得很好!
我的最小 SDK 设置为 Froyo
我的 Lollipop 目标 SDK
有人知道我为什么会收到该警告吗?
public String getString (String key, String defaultValue)
Added in API level 12
除此之外,代码看起来还不错,正如您所说,在 API 15 上可以正常工作。也许您将“12”误读为“21”?
您的代码在 API 12 以下仍然无法运行。由于恢复方法仅在保存的实例状态不为 null 时调用,因此您可以改用这样的方法:
mEditText.setText(savedInstanceState.getString(TYPED_TEXT));
message_empty
文本只有在 EditText
内容没有首先保存的情况下才会被设置...这显然是您编写的,对吧?另外我假设它是一个空字符串。
所以我重写 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() 然后给我一个警告:“Call requires API 21级"
问题是,虽然我收到警告,但当我 运行 在 Android 设备上使用该应用程序时(版本 4.0.3 - API 15) 它工作得很好!
我的最小 SDK 设置为 Froyo
我的 Lollipop 目标 SDK
有人知道我为什么会收到该警告吗?
public String getString (String key, String defaultValue)
Added in API level 12
除此之外,代码看起来还不错,正如您所说,在 API 15 上可以正常工作。也许您将“12”误读为“21”?
您的代码在 API 12 以下仍然无法运行。由于恢复方法仅在保存的实例状态不为 null 时调用,因此您可以改用这样的方法:
mEditText.setText(savedInstanceState.getString(TYPED_TEXT));
message_empty
文本只有在 EditText
内容没有首先保存的情况下才会被设置...这显然是您编写的,对吧?另外我假设它是一个空字符串。