Вызов функции из другого класса в Kotlin? - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь вызвать простую функцию в отдельном классе в Kotlin в Android:

public class TestOfAClass: AppCompatActivity()  {
      public fun ThisIsATest(thisTest: String) {
           print(thisTest)
    }
}

, но когда у меня есть:

class MainActivity : AppCompatActivity() {

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

        button.setOnClickListener {
            ThisIsATest("Hello World")
        }
    }
}

Я понял: Unresolved reference: ThisIsaTest

Так как я могу вызвать функцию из другого класса?

1 Ответ

0 голосов
/ 06 марта 2020

Метод, который вы хотите вызвать, является методом экземпляра, самый простой ответ:

class MainActivity : AppCompatActivity() {

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

        button.setOnClickListener {
            TestOfAClass().ThisIsATest("Hello World")
        }
    ))

лучший ответ - переименовать ваш метод в случай верблюда:

     public fun thisIsATest(thisTest: String) {
           print(thisTest)
    }
}

Это как вы знаете, это метод, а не класс.


Но если вы пытаетесь общаться между двумя действиями, это не то, как это сделать . Есть несколько других опций, одна из которых использует startActivityForResult:

https://developer.android.com/training/basics/intents/result

Как управлять startActivityForResult для Android?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...