인텐트로 오브젝트를 넘겨보자.
별도로 클래스를 만들어서 넘겨본다.
[별도로 만든 클래스]
class TestClass: Parcelable {
var data10 : Int = 0
var data20 : String? = null
companion object {
@JvmField
val CREATOR : Parcelable.Creator<TestClass> = object : Parcelable.Creator<TestClass> {
override fun createFromParcel(source: Parcel?): TestClass {
val test = TestClass()
test.data10 = source?.readInt()!!
test.data20 = source?.readString()
return test
}
override fun newArray(size: Int): Array<TestClass?> {
return arrayOfNulls<TestClass>(size)
}
}
}
override fun writeToParcel(dest: Parcel?, flags: Int) {
dest?.writeInt(data10)
dest?.writeString(data20)
}
override fun describeContents(): Int {
return 0
}
}
[메인 클래스]
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
a1_btn1.setOnClickListener {
var t1 = TestClass()
t1.data10 = 100
t1.data20 = "문자열1"
var intent = Intent(this, Main2Activity::class.java)
intent.putExtra("test1", t1)
startActivityForResult(intent, 1)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) {
var t2 = data?.getParcelableExtra<TestClass>("test2")
a1_txt2.text = "t2.data10 = ${t2?.data10}\n"
a1_txt2.append("t2.data20 = ${t2?.data20}")
}
}
}
[세컨 클래스]
class Main2Activity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
var t1 = intent.getParcelableExtra<TestClass>("test1")
a2_txt1.text = "t1.data10 = ${t1.data10}\n"
a2_txt1.append("t1.data20 = ${t1.data20}")
a2_btn1.setOnClickListener {
var t2 = TestClass()
t2.data10 = 200
t2.data20 = "문자열2"
var intent2 = Intent(this, MainActivity::class.java)
intent2.putExtra("test2", t2)
setResult(Activity.RESULT_OK, intent2)
finish()
}
}
}
'Dead Code > DEPRECATED-KOTLIN' 카테고리의 다른 글
[코틀린코드연습장] Fragment생성 (0) | 2019.03.07 |
---|---|
[코틀린코드연습장] 커스텀리스트 (0) | 2019.02.20 |
[코틀린코드연습장] ListDialog (0) | 2019.01.30 |
[코틀린코드연습장] BroadCastReceiver (0) | 2019.01.24 |
[코틀린코드연습장] ActivityACTION (0) | 2019.01.22 |
[코틀린코드연습장] startActivityForResult(2) (0) | 2019.01.17 |
[코틀린코드연습장] startActivityForResult(1) (0) | 2019.01.17 |
[코틀린코드연습장] 쓰레드...(4) RunOnUIThread (0) | 2019.01.17 |
[코틀린코드연습장] Handler.. sendMessage (0) | 2019.01.16 |
[코틀린코드연습장] Permissions. (0) | 2019.01.12 |