java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
当我试图打开一个隐含意图的链接时,我会遇到这个错误。我在Settings.kt
活动中通过ImageView上的setOnClcikListener
从它的适配器类SettingsAdapter.kt
调用openUrl(url: String)
设置适配器.kt类
private val settings = Settings()
youtubeLink.setOnClickListener {
val url = "https://www.youtube.com/watch?v=i-0FtaAadeM"
settings.openUrl(url)
}
设置.kt活动
fun openUrl(url: String) {
val intent = Intent(Intent.ACTION_VIEW,Uri.parse(url))
startActivity(intent)
}
您采用了错误的方法。你可以用两种方法做到这一点。
-
您可以直接调用适配器中的代码片段
youtubeLink.setOnClickListener { val url = "https://www.youtube.com/watch?v=i-0FtaAadeM" val intent = Intent(Intent.ACTION_VIEW,Uri.parse(url)) context.startActivity(intent) }
-
您可以在适配器中创建回调,并在活动中实现
private OnSettingsListener listener; void setOnSttingListener(OnSettingsListener listener){ this.listener = listener; } youtubeLink.setOnClickListener { val url = "https://www.youtube.com/watch?v=i-0FtaAadeM" listener.onSettingClick(url); } interface OnSettingsListener { void onSettingClick(String url); }
在你的活动中,实现这个监听器
Settings implements SettingsAdapter.OnSettingsListener { @Override public void onSettingClick(String url) { openUrl(url) } }