Всем доброе утро,
Поскольку я изучаю Kotlin для разработки Android, теперь я пытаюсь использовать базовые программы, такие как мир приветствия и как перемещаться из одной активности в другую, нет проблем в этом
Моя забота – когда я перехожу от одного вида деятельности к другому, он отлично работает, но я не знаю, как передавать значения между действиями
Я устал задавать значения в одном действии и извлекаться в другом действии, он не работает
См. Фрагмент кода ниже
Это моя основная деятельность, когда я беру имя пользователя и пароль из текста редактирования и установки на намерение
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") }
}
Прошу, пожалуйста, как это сделать, будь то если у меня есть другой способ сделать это в котлине, если не по желанию
заранее спасибо
Я нахожусь на мобильном телефоне, вы должны протестировать сами.
Попробуйте сделать CharSequence
String
в MainActivity
, вы поставили CharSequence
а не String
, например:
var userName = username.text.toString() var password = password_field.text.toString()
Вы можете просто использовать намерения и пакет для передачи данных из одной активности в другую.
val intent = Intent(this@OneActivity,TwoActivity::class.java); intent.putExtra("username", userName) startActivity(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);