Как мне получить доступ и изменить переменные, объявленные внутри класса MainActivity внутри его функции класса? - PullRequest
0 голосов
/ 07 июля 2019

Я хочу получить доступ и изменить переменную btnClick, объявленную внутри функции MainActivity, как мне это сделать?

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var btnClick = true
        randomlyChangeDrawable()
    }

    fun randomlyChangeDrawable() {
        btnClick = false
    }
}

Ответы [ 2 ]

2 голосов
/ 07 июля 2019

если вы переместите btnClick за пределы метода onCreate, он будет доступен из всех методов MainActivity.

class MainActivity : AppCompatActivity() {

    var btnClick = true

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btnClick = true
        randomlyChangeDrawable()
    }

    fun randomlyChangeDrawable() {
        btnClick = false
    }
}

это не относится к классам Android.каждая переменная, объявленная внутри класса (не внутри его методов), доступна внутри всех методов этого класса

0 голосов
/ 07 июля 2019

Вы можете объявить переменную сверху var btnclicked;

Базовый пример с использованием kotlin

var btnClicked=false;
fun main() {
    println("Hello, world!!!")
    btnClicked=true;
    otherFn()
}

fun otherFn(){
    println(btnClicked) //prints true
    btnClicked=false;
    println(btnClicked) //prints false
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...