android - 错误:onActivityResult 不会覆盖任何内容
问题描述
我正在为 Android 的 Kotlin 编写语音识别应用程序。
class MainActivity : AppCompatActivity() {
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val intent:Intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM)
startActivityForResult(intent, REQUEST_CODE)
}
override fun onActivityResult(requestCode:Int, resultCode:Int, data:Intent) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {/*do something*/ }
super.onActivityResult(requestCode, resultCode, data)
}
}
奇怪的是,编译器总是发现错误:'onActivityResult' 什么都不覆盖。
Android 文档指出 startActivityForResult 的结果可以用 onActivityResult 检索。
现在的问题是:如何使用 Kotlin 获得语音识别的结果?
解决方案
代替
override fun onActivityResult(requestCode:Int, resultCode:Int, data:Intent)
使用下面的代码,使 Intent 对象可以为空。
override fun onActivityResult(requestCode:Int, resultCode:Int, data:Intent?)
由于Intent在父Activity类中声明为可为空。这是示例代码:
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
推荐阅读
- javascript - 如何使用 React 从 HTML 5 中的服务器数据库获取数据
- javascript - html-webpack-plugin 是否在劫持我的快递服务器?
- arrays - 如何在对象内部映射和数组
- python - 在加载的张量流模型上进行预测时,我遇到了一个令人困惑的 cuDNN 错误
- java - 如何从扫描仪检索数据输入以在方法中使用?
- vue.js - 由于 v-if,Vue.js this.$refs 为空
- python - Python Selenium Webdriver:返回几个元素后返回错误
- c# - 翻译到和/或坐标系如何在 Xamarin 表单中工作
- javascript - 过滤器和结果显示在同一页面上的消除测验
- python - Flask 中的多线程