SARATH V
SARATH V

Reputation: 500

Global object declaration in kotlin

How to declare objects globally in kotlin like in java TextView tv;.

Or any method to call the same variable in different methods/functions.

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val textView: TextView = findViewById(R.id.texfirst) as TextView 

    textView.setOnClickListener {
        Toast.makeText(applicationContext,"Welcome to Kotlin ! $abc "+textView.text, Toast.LENGTH_LONG).show()
    }

    myFunction(textView)
}

fun myFunction(mtextv : TextView) {
    Toast.makeText(applicationContext,"This is  new  $abc "+mtextv.text, Toast.LENGTH_LONG).show()
}

See the above code I've separate function with parameter of TextView. I want the TextView object at second function. My question is: Is it possible to call function without parameter and am I able to get TextView object at myFunction().

Learning kotlin in android studio. Hope question is clear .

Upvotes: 9

Views: 13364

Answers (1)

BakaWaii
BakaWaii

Reputation: 6992

The one you are mentioning is class property.

For your case, you need to declare a TextView in an Activity class and do the assignment by calling findViewById() in onCreate().

class YourActivity {

    lateinit var textView: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        textView = findViewById(R.id.texfirst) as TextView
        //implementation
    }

    fun myFunction() {
        Toast.makeText(applicationContext, "This is  new $abc " + textView.text, Toast.LENGTH_LONG).show()
    }
}

Upvotes: 25

Related Questions