I’m trying to update the Controller layer according to Listing 2.6 Wiring up the TextView.
When I build, I get an error
Unresolved reference: TextView
I then add an import for android.widget.TextView
and get a new error:
Overload resolution ambiguity:
public final fun setText(text: CharSequence!): Unit defined in android.widget.TextView
public final fun setText(resid: Int): Unit defined in android.widget.TextView
I’m new to Kotlin but not to programming–can’t find the right syntax to make it work (or what to check in Android Studio).
I was able to workaround the issue by changing my function to (add as Int):
private fun updateQuestion() {
val questionTextResId = questionBank[currentIndex].textResId
questionTextView.setText(questionTextResId as Int)
}
@buzzsurfr this is a strange one. How are you declaring the TextView variable?
Is it like so?
private lateinit var questionTextView: TextView
Also ensure it’s an instance variable and not a local variable.
Also how does you Question class look like?
Make sure the textResId field in your Question class is of type Int and annotated with the @StringRes annotation like so:-
data class Question(@StringRes val textResId: Int, val answer: Boolean)
I believe the compiler is having an issue resolving textResId hence its not sure which setText method to execute as the method is overloaded.
1 Like
I am declaring the TextView variable using (class also shown for location):
class MainActivity : AppCompatActivity() {
...
private lateinit var questionTextView: TextView
...
Question class (does have type Int with @StringRes annotation):
package com.bignerdranch.android.geoquiz
import androidx.annotation.StringRes
data class Question(@StringRes val textResId: Int, val answer: Boolean)
1 Like
Not sure how or why, but was able to fix the problem by changing the target SDK version to 28 and then Syncing the project to Gradle files. However, I also changed the SDK version back to 30 and sync’d again, and it works.
So in other words, we’ll blame either the computer or the operator.
In case anyone finds this, big things to check are the imports.
1 Like