-1
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference

I am getting this error when I am trying to open a link with implicit intent. I am calling openUrl(url: String) in Settings.kt activity from it's adapter class SettingsAdapter.kt through a setOnClcikListener on a ImageView.

SettingsAdapter.kt Class

private val settings = Settings()
youtubeLink.setOnClickListener {
            val url = "https://www.youtube.com/watch?v=i-0FtaAadeM"
            settings.openUrl(url)
        }

Settings.kt Activity

fun openUrl(url: String) {
        val intent = Intent(Intent.ACTION_VIEW,Uri.parse(url))
        startActivity(intent)
    }
Levi
  • 187
  • 2
  • 17

1 Answers1

0

You are following wrong approach. You can do this in two ways.

  1. You can directly call code snippet in your adapter

      youtubeLink.setOnClickListener {
         val url = "https://www.youtube.com/watch?v=i-0FtaAadeM"
         val intent = Intent(Intent.ACTION_VIEW,Uri.parse(url))
         context.startActivity(intent)
     }
    
  2. You can create a callback in your adapter and implement in your activity

     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);     
    }
    

    In your activity, implement this listener

     Settings implements SettingsAdapter.OnSettingsListener {
    
     @Override
     public void onSettingClick(String url) {
      openUrl(url)
    }
    }
    
Priyanka
  • 1,791
  • 1
  • 7
  • 12
  • Yeah. I got it now, I was following the first approach before but I haven't wrapped the startActivity() with context so I was getting an error – Levi Oct 28 '20 at 06:21