#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. Желаю удачи 🙂