๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ฑ| Android/๐Ÿ“˜ | ๊ธฐ๋ก

[Android] ํ™”๋ฉด ์ด๋™ ๋ฐฉ๋ฒ• ์ •๋ฆฌ

by immgga 2022. 4. 12.

์ด๋ฒˆ ์˜ˆ์ œ๋Š” ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ํ™”๋ฉด ์ „ํ™˜ ๋ฐฉ๋ฒ•๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค.


1. intent๋ฅผ ์ด์šฉํ•œ ํ™”๋ฉด์ด๋™

intent๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ƒ๊ฐ๋ณด๋‹ค ๊ตฌ๊ธ€์— ๋งŽ์ด ๋‚˜์™€์žˆ์–ด ์‰ฝ๊ฒŒ ์•Œ์•„๋‚ผ์ˆ˜ ์žˆ๋‹ค.

 

// ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ intent ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)

์ด๊ฑด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ intent ์‚ฌ์šฉ๋ฒ•์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ   ์ € ์˜ˆ์ œ ์ฝ”๋“œ๋Š” startActivity(this, SecondActivity::class.java)๋กœ ๋ฐ”๊ฟ” ์“ธ์ˆ˜ ์žˆ๋‹ค.

 

1-1. putExtra

putExtra๋Š” intent๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฉ”์„œ๋“œ๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค.

 

class MainActivity: AppcompatActivity() {

    ...
    
    val a = 10
    val intent = Intent(this, SecondActivity::class.java)
    intent.putExtra("a", a)	// ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
    startActivity(intent)
}

intent ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“  ํ›„์— ์“ธ์ˆ˜ ์žˆ๋‹ค.

putExtra ์•ˆ์—๋Š” ๋ณด๋‚ด์งˆ id์™€ ๋ณด๋‚ผ ๋ณ€์ˆ˜๋“ค์„ ์ ์œผ๋ฉด ๋œ๋‹ค.

 

1-3. intent๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐค๋Ÿฌ๋ฆฌ ์•ฑ์œผ๋กœ ์ด๋™ํ•˜๊ธฐ

๊ฐค๋Ÿฌ๋ฆฌ๋กœ ์ด๋™ํ•˜๋Š” intent ์˜ˆ์ œ๋Š” ์‚ฌ์ง„ ์—…๋กœ๋“œ๋ฅผ ํ•˜๋Š” sns์•ฑ์„ ๋งŒ๋“ค๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

val intent = Intent(Intent.ACTION_PICK)
intent.type = "image/*"
startActivityForResult(photoPickerIntent, PICK_IMAGE_FROM_ALBUM)

 

 

1-4. intent๋ฅผ ์‚ฌ์šฉํ•œ Activity์—์„œ fragment๋กœ ์ด๋™ํ•˜๊ธฐ

์ด๊ฑด ์ฒซ๋ฒˆ์งธ ์˜ˆ์ œ์™€ ๋‹ค๋ฅผ๊ฒŒ ์—†์ง€๋งŒ ์ผ๋‹จ ์˜ˆ์ œ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด๋ณด๊ฒ ๋‹ค.

 

val intent = Intent(this, Fragment1::class.java)
startActivity(intent)

๊ทธ๋ƒฅ ํด๋ž˜์Šค ๋„ฃ๋Š” ๋ถ€๋ถ„์— fragment class๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฐ˜๋Œ€๋กœ(fragment -> Activity)๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

2. fragment๋ผ๋ฆฌ์˜ ํ™”๋ฉด ์ด๋™

fragment๋ผ๋ฆฌ์˜ ํ™”๋ฉด ์ „ํ™˜์€ intent๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ๋ณต์žกํ•˜๋‹ค๊ณ  ๋Š๋‚„์ˆ˜๋„ ์žˆ๋‹ค.

 

class fragment1: Fragment() {

    ...

    val fragment1 = Fragment1()
    supportFragmentManager()
        .beginTransaction()
        .add(R.id.framelayout, fragment1)
        .commit()
}

fragment๋ผ๋ฆฌ์˜ ํ™”๋ฉด ์ด๋™์€ addํ•จ์ˆ˜์— ๋ฐ”๋€” View์™€ ๋ฐ”๊ฟ€ fragment ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋งŽ์ด ์–ด๋ ต์ง€๋Š” ์•Š๋‹ค.

 

2-1. fragment ์•ˆ์—์„œ์˜ ํ™”๋ฉด ์ด๋™

fragment ์—์„œ ํ™”๋ฉด์„ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค.

 

// ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ intent ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)

์ฒซ ๋ฒˆ์งธ ์˜ˆ์ œ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์˜ˆ์ œ์—์„œ this ๋ถ€๋ถ„์„ context ๋˜๋Š” requireContext() ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค.

// fragment ์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ
val intent = Intent((context or requireContext()), SecondFragment::class.java)

๋‚˜๋จธ์ง€ ์˜ˆ์ œ๋“ค๋„ ๋ชจ๋‘ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด fragment ์•ˆ์—์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ’ก์ •๋ฆฌ

๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ํ™”๋ฉด ์ด๋™ ๋ฐฉ๋ฒ•๋“ค์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…์„ ์จ ๋ณด์•˜๋‹ค.

๊นŒ๋จน์—ˆ๊ฑฐ๋‚˜ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ๊ฒƒ๋“ค๋„ ์ฐจ๋ก€์ฐจ๋ก€ ์ˆ˜์ •ํ•  ๊ณ„ํš์ด๋‹ค.

 

๋ณผ๋งŒํ•œ ๊ฒƒ๋“ค

https://rkdrkd-history.tistory.com/3

 

[Android Kotlin] firebase fireStore, storage๋ฅผ ์ด์šฉํ•ด recyclerView๋กœ ์‚ฌ์ง„ ์ถœ๋ ฅํ•˜๊ธฐ

์•ˆ๋“œ๋กœ์ด๋“œ sns์•ฑ ๋งŒ๋“ค๋‹ค๊ฐ€ ์•Œ์•„๋‚ธ ๋ฐฉ๋ฒ•์„ ๊นŒ๋จน์—ˆ์–ด๋„ ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ์ด ํฌ์ŠคํŒ…์„ ์“ด๋‹ค. ์˜ค๋Š˜์€ firebase fireStore, storage๋ฅผ ์ด์šฉํ•ด recyclerView๋กœ ์‚ฌ์ง„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์„ ํ•ด ๋ณด๊ฒ ๋‹ค. ๋จผ์ € storage์— ์‚ฌ์ง„์„

rkdrkd-history.tistory.com

728x90

๋Œ“๊ธ€