Как передать значения из activity в другое activity в kotlin
поскольку я изучаю Kotlin для разработки android, я теперь пробую основные программы , такие как hello world и как переходить от одного вида деятельности к другому виду деятельности, в этом нет проблем
меня беспокоит, когда я переходить от одной деятельности к другой деятельности, он работает нормально, но я не знаю как передать значения между
Я устал устанавливать значения в одном действии и извлекать в другом действии он не работает
см. фрагмент кода ниже
Это моя основная деятельность, где я беру имя пользователя и пароль из текста редактирования и настройки в intent
class MainActivity : AppCompatActivity() {
val userName = null
val password = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
val intent = Intent(this@MainActivity,SecondActivity::class.java);
var userName = username.textø
var password = password_field.text
intent.putExtra("Username", userName)
intent.putExtra("Password", password)
startActivity(intent);
}
}
}
Это моя вторая деятельность, где я должен получать значения от основной деятельности
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
var strUser: String = intent.getStringExtra("Username")
var strPassword: String = intent.getStringExtra("Password")
user_name.setText("Seelan")
passwor_print.setText("Seelan")
}
}
пожалуйста, направьте меня, как это сделать, если у меня есть другой способ сделать это в Котлине, если не намеренно
спасибо заранее
6 ответов
Я на мобильном телефоне, вы должны проверить самостоятельно.
попробуйте сделать CharSequence
до String
на MainActivity
, вы поставили CharSequence
, а не String
, например:
var userName = username.text.toString()
var password = password_field.text.toString()
отправить значение из HomeActivity
val intent = Intent(this@HomeActivity,ProfileActivity::class.java)
intent.putExtra("Username","John Doe")
startActivity(intent)
получить значения в ProfileActivity
val profileName=intent.getStringExtra("Username")
в Котлине вы можете передать данные, просто используя намерения. Вы можете напрямую поместить свои данные в intent или записать эти данные в пакет и отправить этот пакет другому действию с помощью intent.
val intent = Intent(this@HomeActivity,ProfileActivity::class.java);
intent.putExtra("profileName", "John Doe")
var b = Bundle()
b.putBoolean("isActive", true)
intent.putExtras(b)
startActivity(intent);
вы можете просто использовать intents и bundle для отправки данных из одного действия в другое действие.
val intent = Intent(this@OneActivity,TwoActivity::class.java);
intent.putExtra("username", userName)
startActivity(intent);
во-первых, вы должны сделать это,
var userName = username.text.toString()
var password = password_field.text.toString()
добавить зависимость Anko.
implementation "org.jetbrains.anko:anko:0.10.4"
информация, проходящая внутри MainActivity()
как
startActivity<SecondActivity>("Username" to userName,"Password" to password )
получить информацию из SecondActivity()
есть
val profileName=intent.getStringExtra("Username")
//On Click on Button
var but = findViewById<Button>(R.id.buttionActivity_two) as Button
but.setOnClickListener {
//Define intent
var intent = Intent(applicationContext,MainActivity::class.java)
// Here "first" is key and 123 is value
intent.putExtra("first",123)
startActivity(intent)
}
}
// If Get In Into Other Activity
var Intent1: Intent
Intent1= getIntent()
//Here first is key and 0 is default value
var obj :Int = Intent1.getIntExtra("first",0);
Log.d("mytag","VAlue is==>"+obj)