Android, Kotlin: 'class in class' nem látja a külső osztály propertyjeit

Android, Kotlin: 'class in class' nem látja a külső osztály propertyjeit
2022-03-09T10:58:06+01:00
2022-03-09T11:22:58+01:00
2022-12-07T00:55:35+01:00
XtraP
Adott egy Kotlin nyelvű MainActivity, benne az alábbi kódrészlet:

class MainActivity : AppCompatActivity() { var iV: ImageView? = null val matrix: Matrix = Matrix() val scale = 1f var sGD: ScaleGestureDetector? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) iV = findViewById(R.id.imageView) as ImageView sGD = ScaleGestureDetector(this, ScaleListener()) } override fun onTouchEvent(ev: MotionEvent?): Boolean { sGD!!.onTouchEvent(ev) return true } class ScaleListener: SimpleOnScaleGestureListener() { override fun onScale(detector: ScaleGestureDetector): Boolean { scale *= detector.scaleFactor scale = Math.max(0.1f, Math.min(scale, 5.0f)) matrix.setScale(scale, scale) iV.setImageMatrix(matrix) return true } } }
A gondom az, hogy a belső ScaleListener osztály nem látja a külső MainActivity propertyjeit (scale, matrix, iV), tehát a kód nem is lefordítható. A dolog bizonyára banális (még mindig nagyon kezdő vagyok ...), de nem értem az okot.
Hozzátartozik a történethez, hogy a Kotlin sorok egy az Android Studio által Java-ból konvertált kódból származnak.
(Arra sincs garanciám, hogy az eredeti működőképes-e, de ettől függetlenül nem látom a hiba okát.)

Mi lehet a hiba, és - főleg - hogyan lenne áthidalható?
Mutasd a teljes hozzászólást!
Csatolt állomány
Szerintem neked az inner class kellene.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd