android - 如果在 Kotlin 中删除额外的
问题描述
如何删除下面代码中的if (savedInstanceState != null)并全部使用?和 !!
override fun onViewStateRestored(savedInstanceState: Bundle?) {
super.onViewStateRestored(savedInstanceState)
if (savedInstanceState != null)
search_bar.visibility =
if (savedInstanceState.getBoolean("showSearchBar", false)) View.VISIBLE else View.GONE
}
解决方案
您可以使用安全访问?.
并将savedInstanceState
可为空的布尔值与true
:
val showSearchBar = savedInstanceState?.getBoolean("showSearchBar", false) == true
search_bar.visibility = if (showSearchBar) View.VISIBLE else View.GONE
请注意,即使savedInstanceState
为空,这也会隐藏搜索栏,因此它的行为与最初的行为略有不同,尽管它似乎是所需的行为,因为您false
默认传递为getBoolean
反正。
顺便说一句,Android KTX有一个View.isVisible
扩展属性,可以让你这样写:
search_bar.isVisible =
savedInstanceState?.getBoolean("showSearchBar", false) == true
推荐阅读
- python-3.x - 如何停止 sort_values 按字母顺序按列名排序?
- python - 带有 OR 条件的 Python 正则表达式
- python - AttributeError:“浮动”对象没有属性“翻译”Python
- python - 从 MongoDB 中的字典数组中提取和更新字典
- javascript - 将参数从指令发送到AngularJS中的控制器
- multithreading - 3 threads per request
- c++ - std::atomic 到什么程度?
- c - 如果输入具有特定的大小和格式,为什么会忽略 fgets 调用?
- django - Django - “NoneType”对象没有属性“年份”
- outlook - Windows 10 上的 IBM Notes(又名 Lotus Notes) - 自动化对象错误