【Android】解决savedInstanceState.getString方法为空!
程序员文章站
2023-12-31 23:42:34
问题解决:方法不是两个参数的onSaveInstanceState,而是onSaveInstanceState(outState: Bundle)今天在做安卓实验遇到一个很坑的问题。在安卓app做横屏竖屏旋转时,我们通常需要使用一个方法或者两个方法来保存数据状态:onSaveInstanceState()onRestoreInstanceState()具体使用例子如下override fun onSaveInstanceState(outState: Bundle) {...
问题解决:方法不是两个参数的onSaveInstanceState,而是onSaveInstanceState(outState: Bundle)
今天在做安卓实验遇到一个很坑的问题。
在安卓app做横屏竖屏旋转时,我们通常需要使用一个方法或者两个方法来保存数据状态:
- onSaveInstanceState()
- onRestoreInstanceState()
具体使用例子如下
override fun onSaveInstanceState(outState: Bundle) { var test = "jinondo is great!" outState.putString("aaa",test) super.onSaveInstanceState(outState) }
保存完状态用oncreate去取出数据
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) if(savedInstanceState != null){ var test = savedInstanceState?.getString("aaa") if (test != null) { Log.v("test",test) } } //... }
或者使用 onRestoreInstanceState方法取出
override fun onRestoreInstanceState(savedInstanceState: Bundle) { super.onRestoreInstanceState(savedInstanceState) val test = savedInstanceState.getString("aaa") if(test==null) Log.v("""test is null?""","test is null") else Log.v("test is null? N0", test.toString()) }
但是!!!我总是获取不到那个String数据,一开始在网上博客找相关 onSaveInstanceState 的函数,发现都是 java 的代码,其实kotlin和java方法一个也差不多,然后就在kotlin打上函数名前几个字母,重要的是我直接代码补全了,onSaveInstanceState(outState: Bundle, outPersistentState: PersistableBundle)
多出了第二个参数,以为是和java略有不同,故沿用这个方法,但操作如痛只有一个参数的重载方法一样,一直不成功。其实就是方法错了,正确的只有一个参数,行吧记录一下踩坑经历 555
正确方法:onSaveInstanceState(outState: Bundle)
本文地址:https://blog.csdn.net/weixin_44427114/article/details/109057831
推荐阅读
-
【Android】解决savedInstanceState.getString方法为空!
-
Android SDK Manager 打不开的解决方法
-
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法,imagick_PHP教程
-
解决PHP的json_encode处理中文被转码为全英文的方法
-
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
-
PHP用正则表达式 判断是否为Y-m-d 时间格式解决方法
-
Android Studio Gradle依赖冲突解决方法
-
CI框架,源代码一次性判断获取post(get)数据是否有某个字段值为空方法,cipost
-
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
-
面向对象问题,方法体中不能将对象设置为空吗?