[Kotlin] enum의 기술 예 (인텐트에서 enum을 전달한다)
8071 단어 Kotlin
개요
enum을 사용하면 코드를 읽을 수 있고 실수를 줄일 수 있습니다.
이번에는 enum으로 정의된 데이터를 2개의 Activity간에 전달하는 샘플 코드를 공유하고 싶습니다.
데이터 전달 Activity
class MainActivity : AppCompatActivity() {
public enum class MyHandEnum{
GU,
CHOKI,
PA
}
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.gu.setOnClickListener{
openActivity(MyHandEnum.GU)
}
binding.choki.setOnClickListener{
openActivity(MyHandEnum.CHOKI)
}
binding.pa.setOnClickListener{
openActivity(MyHandEnum.PA)
}
}
private fun openActivity(myHand: MyHandEnum){
val intent = Intent(this,ResultActivity::class.java)
intent.putExtra("MY_HAND",myHand)
startActivity(intent)
}
}
데이터 수신 Activity
class ResultActivity : AppCompatActivity() {
private lateinit var binding: ActivityResultBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityResultBinding.inflate(layoutInflater)
setContentView(binding.root)
val myHand: MainActivity.MyHandEnum = intent.getSerializableExtra("MY_HAND") as MainActivity.MyHandEnum
when(myHand) {
MainActivity.MyHandEnum.GU -> binding.myHandImage.setImageResource(R.drawable.gu)
MainActivity.MyHandEnum.CHOKI -> binding.myHandImage.setImageResource(R.drawable.choki)
MainActivity.MyHandEnum.PA -> binding.myHandImage.setImageResource(R.drawable.pa)
}
}
}
보충
enum을 분기시키는 when()을 기술하고 싶을 때는
when(~){ 까지 입력한 시점에서 「Alt+Enter」를 누르면 enum의 항목을 자동 입력해 줍니다
Reference
이 문제에 관하여([Kotlin] enum의 기술 예 (인텐트에서 enum을 전달한다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kazuma_f/items/ca2d76b94dd57dd5f0bb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class MainActivity : AppCompatActivity() {
public enum class MyHandEnum{
GU,
CHOKI,
PA
}
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.gu.setOnClickListener{
openActivity(MyHandEnum.GU)
}
binding.choki.setOnClickListener{
openActivity(MyHandEnum.CHOKI)
}
binding.pa.setOnClickListener{
openActivity(MyHandEnum.PA)
}
}
private fun openActivity(myHand: MyHandEnum){
val intent = Intent(this,ResultActivity::class.java)
intent.putExtra("MY_HAND",myHand)
startActivity(intent)
}
}
데이터 수신 Activity
class ResultActivity : AppCompatActivity() {
private lateinit var binding: ActivityResultBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityResultBinding.inflate(layoutInflater)
setContentView(binding.root)
val myHand: MainActivity.MyHandEnum = intent.getSerializableExtra("MY_HAND") as MainActivity.MyHandEnum
when(myHand) {
MainActivity.MyHandEnum.GU -> binding.myHandImage.setImageResource(R.drawable.gu)
MainActivity.MyHandEnum.CHOKI -> binding.myHandImage.setImageResource(R.drawable.choki)
MainActivity.MyHandEnum.PA -> binding.myHandImage.setImageResource(R.drawable.pa)
}
}
}
보충
enum을 분기시키는 when()을 기술하고 싶을 때는
when(~){ 까지 입력한 시점에서 「Alt+Enter」를 누르면 enum의 항목을 자동 입력해 줍니다
Reference
이 문제에 관하여([Kotlin] enum의 기술 예 (인텐트에서 enum을 전달한다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kazuma_f/items/ca2d76b94dd57dd5f0bb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class ResultActivity : AppCompatActivity() {
private lateinit var binding: ActivityResultBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityResultBinding.inflate(layoutInflater)
setContentView(binding.root)
val myHand: MainActivity.MyHandEnum = intent.getSerializableExtra("MY_HAND") as MainActivity.MyHandEnum
when(myHand) {
MainActivity.MyHandEnum.GU -> binding.myHandImage.setImageResource(R.drawable.gu)
MainActivity.MyHandEnum.CHOKI -> binding.myHandImage.setImageResource(R.drawable.choki)
MainActivity.MyHandEnum.PA -> binding.myHandImage.setImageResource(R.drawable.pa)
}
}
}
enum을 분기시키는 when()을 기술하고 싶을 때는
when(~){ 까지 입력한 시점에서 「Alt+Enter」를 누르면 enum의 항목을 자동 입력해 줍니다
Reference
이 문제에 관하여([Kotlin] enum의 기술 예 (인텐트에서 enum을 전달한다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kazuma_f/items/ca2d76b94dd57dd5f0bb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)