Проблема с Руководством разработчика Android Начните другое действие?

#android #kotlin

Вопрос:

Итак, я изучал разработку мобильных приложений на веб-сайте разработки Android, но, похоже, возникла проблема: https://developer.android.com/training/basics/firstapp/starting-activity#kotlin

код для создания намерения при нажатии на кнопку, похоже, не работает:

 const val EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"

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

    /** Called when the user taps the Send button */
    fun sendMessage(view: View) {
        val editText = findViewById<EditText>(R.id.editTextTextPersonName)
        val message = editText.text.toString()
        val intent = Intent(this, DisplayMessageActivity::class.java).apply {
            putExtra(EXTRA_MESSAGE, message)
        }
        startActivity(intent)
    }
}
 

Я немного изменил его, и, похоже, он работает таким образом

 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var btn = findViewById<Button>(R.id.button)

        btn.setOnClickListener{
            val editText = findViewById<EditText>(R.id.editTextTextPersonName)
            val message = editText.text.toString()
            val intent = Intent(this, DisplayMessageActivity::class.java).apply {
                putExtra(EXTRA_MESSAGE, message)
            }
            startActivity(intent)
        }
    }
 

Я не уверен, что я что-то неправильно понял. Если бы я это сделал, я бы хотел, чтобы меня поправили. И если я не ошибся и приведенный код не работает, как мне сообщить об этой проблеме? Мне уже понравилась страница, но страница не запрашивала более подробной информации.

Комментарии:

1. потому что в части 1 кода вы не подключаете прослушиватель кнопок и не вызываете эту функцию. в onCreate btn.setOnClickListener{ SendMessage() } Или вам нужно прикрепить прослушиватель в XML.

2. Я тоже это подозревал, поэтому добавил прослушиватель во втором коде, полностью удалив функцию SendMessage, но страница разработчика Android не говорит мне добавить прослушиватель кнопок. Это должен быть авторитетный источник, вот почему я так растерян и пытаюсь получить разъяснения. Я в замешательстве, потому что не знаю, как view:View работает в качестве параметра, и мне интересно, может ли он каким-то образом заменить прослушиватель кнопок, и я делаю это неправильно.

3. Прочтите это ниже, они не показали вам макет, но объяснили его. Вы должны прикрепить кнопку onClick on в XML. android:onClick=»Отправить сообщение».. для этого требуется атрибут представления. «Вернитесь в activity_main.xml файл для вызова метода с помощью кнопки: Выберите кнопку в редакторе макетов. В окне Атрибуты найдите свойство onClick и выберите SendMessage [Основная активность] из раскрывающегося списка.»

4. Это именно то, что я неправильно понял, большое вам спасибо!

5. Желаю удачи 🙂