Search code examples
androidandroid-studiokotlinqualtrics

Unable to pinpoint error for unresolved reference for QualtricsFeedback Activity? using Kotlin in Android Studios


I am having an unresolved reference error in my class when building this code. I need help to pinpoint the error.

This is the error

e: .../app/src/main/java/com/example/auth_onboarding/QualtricsFeedback.kt: (37, 50): Unresolved reference: @QualtricsFeedback

(37,50) refers to the last line where this@QualtricsFeedback was called.

This is the code

package com.example.auth_onboarding
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.qualtrics.digital.IQualtricsCallback
import com.qualtrics.digital.Qualtrics
import com.qualtrics.digital.TargetingResult

class QualtricsFeedback : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_qualtrics_feedback)
        setSupportActionBar(findViewById(R.id.toolbar))

        Qualtrics.instance().initialize("some_key", "some_other_key", "some_other_key_2", this);

        val fab =
            findViewById<View>(R.id.fab) as FloatingActionButton
        fab.setOnClickListener {view ->
            fun onClick(view: View?) {
                Qualtrics.instance().evaluateTargetingLogic(MyCallback())
            }
        }
    }
    private class MyCallback : IQualtricsCallback {
        override fun run(targetingResult: TargetingResult) {
            if (targetingResult.passed()) {
                Qualtrics.instance().display(this@QualtricsFeedback)
            }
        }
    }
} 

I've tried .display(QualtricsFeedback.this) but that doesnt work. I've also tried just .display(QualtricsFeedback).

Are there any suggestions of what I could try?


Solution

  • Change to this, you should add inner to class in Kotlin it means an inner class can reference to the outer class

        private inner class MyCallback : IQualtricsCallback {
            override fun run(targetingResult: TargetingResult) {
                if (targetingResult.passed()) {
                    Qualtrics.instance().display(this@QualtricsFeedback)
                }
            }
        }