Property getters & setters in custom view

Hello Kotlin community,

recently i switched to kotlin from java in android development.
Everything works great so far, i have just one issue.

When i’m creating custom views and i define custom attributes, as android sdk says, i have to define getters and setters for that attributes.

For example if i have custom attribute with type String (app:anotherString=“string”)

public String getAnotherString() { 
     return mAnotherString;
 public void setAnotherString(String anotherString) { 
     this.mAnotherString = anotherString;

So i thought, that this can be replaced with property getters and setters like this :

var mAnotherString: String ? = null
      set(value) {

But it just doesn’t work. Can someone explain me why?

What is the error?

If you wants define property “anotherString”:

var anotherString: String = "string"

There is no error, but as i said, i’m trying to implement my own custom attributes declared in attrs.xml.
This is a first step :

<declare-styleable name="MyCustomView">
    <attr name="anotherString" format="string" />

next step is :

To provide dynamic behavior, expose a property getter and setter pair for each custom attribute.

as it is described here:

Problem is that it just does not work with property getters and setters in kotlin style, i need to define it with “java way” as i posted above.

Copy the example code

public class JTest {
    private boolean mShowText;

    public boolean getShowText() {
        return mShowText;

    public void setShowText(boolean showText) {
        mShowText = showText;

in a Kotlin file, the IDE should translate it to:

class JTest {
    var showText: Boolean = false
        set(showText) {
            field = showText

I hope this helps you.

I forgot, the Kotlin way is:

var showText: Boolean by Delegates.observable(false) {
    prop, old, new ->