该函数在MainActivity.kt中运行良好,但它在片段中有错误。
2)我仍然不了解背景问题,请帮助我提供易于理解的链接/信息供我阅读。
fun openYoutubeLink(youtubeID: String) {
val intentApp = Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:" + youtubeID))
val intentBrowser = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=" + youtubeID))
try {
this.startActivity(intentApp)
} catch (ex: ActivityNotFoundException) {
this.startActivity(intentBrowser)
}
}
答案 0 :(得分:3)
因为片段不是活动。您需要请求片段嵌套的活动。 你需要做什么:
requireActivity().startActivity(intentApp)
编辑: 好吧,因为你想通过addapter使用它,这是正确的方法(想想更好的名字):
class MyFragment implements AdapterListener {
Adapter adapter;
@Override
void onResume() {
super.onResume();
adapter = new Adapter(this);
}
@Override
void onPause(){
super.onPause();
adapter = null;
}
@Override
void openActivity(){
...
requireContext().startActivity()
}
}
class Adapter {
...
interface AdapterListener{
void openActivity();
}
}