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:MyClass :: class.java vs this.javaClass
  • 从扩展名中突变字符串
  • Kotlin局部变量线程安全
  • 使用Kotlin和Anko访问资源ID
  • 在Kotlin中定义具有属性的默认构造函数和辅助构造函数
  • 如何在values / ids.xml中获得自定义ID的引用
  • 如何写while循环与在kotlin中的responseInputStream.read - (while((i = responseInputStream.read(byteContainer))
  • 在kotlinc终端中导入依赖库
  • Vertx已经写过“回复”
  • RetrlerView itemClickListener在Kotlin中
  • 自定义布局行为
  • Kotlin language will be the best programming language for Android.