Kotlin – MainActivity扩展AppCompatActivity,onRequestPermissionsResult函数未找到,不能被覆盖

我有一个扩展AppCompatActivity的试用活动类主活动。 在文档中,AppCompatActivity继承了onRequestPermissionsResult方法,当我尝试重写onRequestPermissionsResult方法时,出现此错误

“错误:(95,5)'onRequestPermissionsResult'不会覆盖任何内容”

class MainActivity : AppCompatActivity(), ConnectionCallbacks, OnConnectionFailedListener{ //I didnt include the other functions in the interfaces, suffice to say i have already added them in the original override fun onRequestPermissionsResult(requestCode : Int , permissions: Array<String>, grantResults: Array<Int>){ println("SHOULD HAVE THIS FUNCTION") } } 

One Solution collect form web for “Kotlin – MainActivity扩展AppCompatActivity,onRequestPermissionsResult函数未找到,不能被覆盖”

Kotlin Array<Int>映射到Java Integer[]IntArray映射到Java int[] ,它们是Java中不同的数组类型。 您可以进一步在Kotlin中查看映射类型 。

AppCompatActivity#onRequestPermissionsResult方法签名是:

 override fun onRequestPermissionsResult(requestCode : Int , permissions: Array<String>, grantResults: IntArray){ // it is IntArray rather than Array<Int> ---^ TODO() } 

而不是:

 override fun onRequestPermissionsResult(requestCode : Int , permissions: Array<String>, grantResults: Array<Int>){ TODO() } 

注意 :如果api已经承诺它的参数永远不会是null ,比如onRequestPermissionsResult,那么你可以使用一个IntArray来使参数易于使用。 否则,你应该使用IntArray? 代替。

如果你不想知道Kotlin中的所有映射类型 ,还有另外一种方法可以让你快速重写超类方法。 首先,将光标放在类中,然后按CTRL+O选择要覆盖的方法。 例如:

 class MainActivity : AppCompatActivity(), ConnectionCallbacks, OnConnectionFailedListener{ // put the cursor here, press `CTRL+O` to select which method you want to override } 
  • Kotlin“聪明的演员是不可能的,因为这个时候财产可能已经改变了”
  • Kotlin覆盖子types的乐趣
  • 在kotlin中使用C库函数
  • Kotlin:如何在绑定程序中返回正在运行的服务实例?
  • 如何在Android Studio中输入“ - >”高效
  • RetrlerView itemClickListener在Kotlin中
  • 自己的SDK架构 - Kotlin中的异步方法API
  • 在Android Studio中将代码从Java转换为Kotlin
  • 在BottomsheetDialog中使用setcontentview时,会出现类似“以下函数都不能用提供的参数调用”的错误
  • Kotlin内联函数比Java匿名类更便宜吗?
  • 如何创建一个按钮的自定义形状,但保持可点击和可聚焦
  • Kotlin language will be the best programming language for Android.