문제 설명
Kotlin의 다른 EditText 값에 대한 의도 EditText 값 (Intent EditText values to another EditText values in Kotlin)
인텐트 또는 번들을 사용하여 editText 값을 액티비티 1에서 editText 액티비티 2로 전달하는 방법을 아는 사람이 있습니까?
이 코드는 액티비티 1의 EditText 값이 여전히 EditText 액티비티 2에 표시되지 않습니다.
이것은 mainActivity입니다.
6class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val emailEt = findViewById<EditText>(R.id.et_email)
val passEt = findViewById<EditText>(R.id.et_password)
val nextBtn = findViewById<Button>(R.id.next)
nextBtn.setOnClickListener{
val intent = Intent(this, SecondActivity::class.java)
val email = emailEt.text.toString()
val pass = passEt.text.toString()
intent.putExtra("email", email)
intent.putExtra("pass", pass)
startActivity(intent)
}
}
}
</code></pre>
이것은 SecondActivity입니다.
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
val email = intent.getStringExtra("email")
val pass = intent.getStringExtra("pass")
}
}
</code></pre>
참조 솔루션
방법 1:
Use Intent.putExtra()
in first activity and getIntent().getStringExtra()
in second activity by modifying your second activity as
class SecondActivity : AppCompatActivity() {
val emailEt = findViewById<EditText>(R.id.et_email)
val passEt = findViewById<EditText>(R.id.et_password)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
val email = intent.getStringExtra("email")
val pass = intent.getStringExtra("pass")
emailEt.setText(email)
passEt.setText(pass)
}
}
(by Vin、Junaid Khalid)
참조 문서