Отправка информации между Activity в Котлине

    fun kullaniciOlustur2(view: View){
        val intent = Intent(applicationContext,KullaniciOlustur2::class.java)

        intent.putExtra("input",makeUsername.text.toString())
        intent.putExtra("input2",makeUserphone.text.toString())
        startActivity(intent)
    }

Mainactivity2 начинается здесь .. до этого я использовал

val intent = intent 
val received: String = intent.getStringExtra("input")   
makeUsername.text = received 

Но этот метод больше не работает. Я пробовал использовать getIntent(), но ничего не получил

   val intent = getIntent()

попробуйте это val intent = intent.getStringExtra ("input")

Shweta Chauhan 21.04.2018 15:11

или попробуйте использовать val Received = intent.extras.getString ("input")

Deven 21.04.2018 15:16

Спасибо @ShwetaChauhan, но у меня это не сработало.

Ceridoglu 21.04.2018 15:53

Спасибо @Deven, ваш код хорош, но я не могу отправить информацию в текстовое поле. После вашего кода я написал makeUsername.text = Received Но код имеет красную строку от начала до конца

Ceridoglu 21.04.2018 15:54
0
4
4 818
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я рекомендую использовать Kotlin Anko, существует множество методов, которые помогут вам удалить этот шаблонный код.

проверьте Anko Intents здесь

Ответ принят как подходящий

Попробуйте этот код

Activity 1

val intent = Intent(FirstActivity.this,SecondActivity::class.java) //not application context
intent.putExtra("input",makeUsername.text.toString())
intent.putExtra("input2",makeUserphone.text.toString())
startActivity(intent)

Activity 2

внутри метода onCreate () используйте

val stringOne = getIntent().getStringExtra("input")

Или более чистый способ

val extras = getIntent().getExtras()
if (null != extras) {
    val value = extras.getString("input")
    //The key argument here must match that used in the other activity
}

и, пожалуйста, проверьте аналогичные ответы на Java, вы можете получить идею здесь, уже упомянутую в другом ответе.

Я также использую Анко, чтобы удалить этот шаблонный код

Спасибо @TapanHP, это сработало. Также я буду много пробовать использовать Anko в своем проекте.

Ceridoglu 21.04.2018 23:10

Используйте код ниже: Код такой же, как и в Java. Разница только в том, что в котлине нет 1. Без точки с запятой в конце. 2. для вызова другого действия kotlin используйте ::

напр.KotlinActivity :: class.java

startActivity(Intent(this, KotlinActivity::class.java).putExtra("DataTrasfer", ""))

Чтобы получить выгоду:

intent.getStringExtra("DataTrasfer")

Другие вопросы по теме