37

kotlin报错Unresolved reference: supportFragmentManager

 3 years ago
source link: https://www.daozhao.com/9889.php
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

最近自学到dialog出了点问题,卡在 Unresolved reference: supportFragmentManager 这个报错了。

yIZbm2B.png!mobile

在百度上搜了下,感觉没什么答案,出现这样的问题主要可能有两个原因

  1. 百度搜索问题的搜索关键词不合理
  2. 你遇到的问题其他人还没有遇到,要么就是你涉足的领域太深,其他人还没专研到这里,要么就是这个问题太过简单,根本就不算个问题。

说来惭愧,我这个问题属于过于简单的这种。。。

经过搜索问题的这段经历,我有点感触:

android开发网上的搜索材料有点混乱,网上有的答案是java版的,几年前google已经将kotlin作为Android的第一语言了。网上很多答案给出的很多类、方法都已经过期了,看到被废弃的方法自然是让人感觉不爽的。

其实还是因为自己的基本功自学的不扎实。。。

我最后在stackoverflow找到了答案,虽然该提问的内容跟我的不完全一致,但是通过这个提问我还是收获到了我的答案。

我此时此刻get到关于kotlin的Activity的几个点。

这几个点可能不一定准啊,大牛勿喷

  1. kotlin的Activity里面的很多“全局变量”用法其实是类似JavaScript的 window.xxx 可以直接用 xxx 一样。

    比如我们可以使用 Math.random() ,或者 window.Math.random() 这样来使用。

    所以上面截图的 supportFragmentManager 其实就是 this.supportFragmentManager

    2.kotlin里面不推荐了使用类似java的getXXX和setXXX方法了,它喜欢将其作为属性.xxx来使用。所以获取 this.supportFragmentManager 属性的值可以认为是调用 this.getSupportFragmentManager()

    getSupportFragmentManager 其实FragmentActivity里面的方法,所以如果无法获取该方法是因为你的Activity不是继承自FragmentActivity的。

    zMfMZbb.png!mobile

    果不其然,我之前将自己的MainActivity继承自基类Activity了,而不是FragmentActivity或者常见的AppCompatActivity(继承自FragmentActivity),改一下就好了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK