๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿค–Android/Java (53)

ruriruriya

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - ์•กํ‹ฐ๋น„ํ‹ฐ ๊ฐ„์˜ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋ฐฉ๋ฒ• putExtra(), getExtra()

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ ์‹œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์€ ์•ฑ์˜ ํ•œ ํ™”๋ฉด(Activity) ์—์„œ ๋‹ค๋ฅธ ํ™”๋ฉด(Activity)์œผ๋กœ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๋Š” ๊ณผ์ •์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•  ๋•Œ๋Š” Intent๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•˜๊ณ  putExtra()์™€ getExtra() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ถ”์ถœํ•œ๋‹ค. 1. putExtra() putExtra() ๋ฉ”์„œ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ๋‹ค์Œ ์•กํ‹ฐ๋น„ํ‹ฐ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ์—ฌ๊ธฐ์„œ "key"๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์‹๋ณ„์ž์ด๊ณ , value๋Š” ์‹ค์ œ ์ „๋‹ฌํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ์ด๊ณ , ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ์•กํ‹ฐ๋น„ํ‹ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์–ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. Intent intent = new Intent(CurrentActivity.this, NextActivity.class); intent.putExtra("k..

๐Ÿค–Android/Java 2023. 12. 27. 09:06
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - ์•กํ‹ฐ๋น„ํ‹ฐ ๊ฐ„์˜ ํ™”๋ฉด ์ „ํ™˜ ๋ฐฉ๋ฒ•(Intent, startActivity())

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ Intent๋Š” ํ™”๋ฉด ๊ฐ„์˜ ์ „ํ™˜, ์„œ๋น„์Šค ์‹œ์ž‘, ๋ฐ์ดํ„ฐ ์ „์†ก ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. Intent๋Š” ๋ช…์‹œ์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์•”์‹œ์ ์œผ๋กœ ์‹œ์Šคํ…œ์—์„œ ์ ์ ˆํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฐพ์•„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋œ๋‹ค. 1. Intent ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ Intent๋Š” ํ™”๋ฉด ๊ฐ„์˜ ์ „ํ™˜, ์„œ๋น„์Šค ์‹œ์ž‘, ๋ฐ์ดํ„ฐ ์ „์†ก ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. Intent๋Š” ๋ช…์‹œ์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์•”์‹œ์ ์œผ๋กœ ์‹œ์Šคํ…œ์—์„œ ์ ์ ˆํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฐพ์•„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ CurrentActivity.this๋Š” ํ˜„์žฌ ์žˆ๋Š” ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ , TargetActivity.class๋Š” ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. 2. startActivity() ๋ฉ”์„œ๋“œ๋Š” ๋ช…์‹œ์  Intent๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์ƒ ..

๐Ÿค–Android/Java 2023. 12. 26. 14:17
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - ์•กํ‹ฐ๋น„ํ‹ฐ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ฃผ์š” 4๊ฐœ ํ•จ์ˆ˜(onCreate, onResume, onPause, onDestroy)

์•ˆ๋“œ๋กœ์ด๋“œ ์•กํ‹ฐ๋น„ํ‹ฐ ๋ผ์ดํ”„์‚ฌ์ดํด์€ ์•ฑ ๊ฐœ๋ฐœ์—์„œ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ค. ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ์•ฑ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ, ์‚ฌ์šฉ์ž์˜ ์ƒํ˜ธ์ž‘์šฉ์— ๋ฐ˜์‘ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค. ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” ์ผ๋ จ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ํŠน์ •ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์ด ํ˜ธ์ถœ๋œ๋‹ค. 1. onCreate() ์ด ํ•จ์ˆ˜๋Š” ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค. ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์ฒ˜์Œ ๋งŒ๋“ค์–ด์งˆ ๋•Œ ํ•„์š”ํ•œ ์ดˆ๊ธฐ ์„ค์ •์ด๋‚˜ ๋ฆฌ์†Œ์Šค ์ดˆ๊ธฐํ™” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. UI ์š”์†Œ๋“ค์„ ์„ค์ •ํ•˜๊ณ  ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ํ•œ๋‹ค. 2. onResume() ์‚ฌ์šฉ์ž๊ฐ€ ์•กํ‹ฐ๋น„ํ‹ฐ๋กœ ๋Œ์•„์™”์„ ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค. ์ด ๋•Œ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ํ™”๋ฉด ์ƒ์— ํ‘œ์‹œ๋˜๊ณ , ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์ฃผ๋กœ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๊ณ  ๋™์ž‘ํ•  ์ˆ˜..

๐Ÿค–Android/Java 2023. 12. 26. 13:19
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - CountDownTimer ์‚ฌ์šฉ๋ฐฉ๋ฒ•

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ CountDownTimer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ํƒ€์ด๋จธ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. 1. CountDownTimer ๊ฐ์ฒด ์ƒ์„ฑ CountDownTimer ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๊ฑฐ๋‚˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค. onTick ๋ฉ”์„œ๋“œ๋Š” ์ผ์ • ๊ฐ„๊ฒฉ์œผ๋กœ ์‹คํ–‰๋  ์ฝ”๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ , onFinish ๋ฉ”์„œ๋“œ๋Š” ํƒ€์ด๋จธ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ๋ฅผ ์ •์˜ํ•œ๋‹ค. 2. start ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ CountDownTimer ๊ฐ์ฒด์˜ start() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํƒ€์ด๋จธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. new CountDownTimer(60000, 1000) { // 60์ดˆ(60000 ๋ฐ€๋ฆฌ์ดˆ), 1์ดˆ๋งˆ๋‹ค ๊ฐฑ์‹ (1000 ๋ฐ€๋ฆฌ์ดˆ) public void onTick(long millisUntilFinished) { // ๋งค ์ดˆ๋งˆ๋‹ค ํ˜ธ..

๐Ÿค–Android/Java 2023. 12. 24. 10:08
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - AlertDialog ์•ˆ๋‚ด ํŒ์—… ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

AlertDialog๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€, ์•Œ๋ฆผ ๋˜๋Š” ์„ ํƒ์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ํŒ์—… ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๋Œ€ํ™” ์ƒ์ž์ด๋‹ค. ์ด ๋Œ€ํ™” ์ƒ์ž๋Š” ์‚ฌ์šฉ์ž์˜ ์ฃผ์˜๋ฅผ ๋Œ๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. 1. AlertDialog import import androidx.appcompat.app.AlertDialog; 2. showAlertDialog() ๋ฉ”์†Œ๋“œ ์ƒ์„ฑ setCancelable(boolean cancelable): ์ด ๋ฉ”์„œ๋“œ๋Š” AlertDialog๊ฐ€ ์ทจ์†Œ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•œ๋‹ค. ์ทจ์†Œ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๋Œ€ํ™” ์ƒ์ž ์™ธ๋ถ€๋ฅผ ํ„ฐ์น˜ํ•˜์—ฌ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ๋‹ซ์„ ์ˆ˜ ์žˆ๋‹ค. true๋กœ ์„ค์ •ํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๊ณ , false๋กœ ์„ค์ •ํ•˜๋ฉด ๋‹ซํž ์ˆ˜ ์—†๋‹ค. setT..

๐Ÿค–Android/Java 2023. 12. 23. 10:19
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - TextView์˜ setText ํ•จ์ˆ˜ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

TextView์—์„œ๋Š” ๋ฌธ์ž์—ด/ ์ˆซ์ž์—ด ๋ชจ๋‘ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” setText() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ setText() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. TextView. setText() ํ•จ์ˆ˜ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ๋ฐ›์•„์„œ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , ์ˆ˜์‹ ๊ณ„์‚ฐ์„ ํ•  ๋•Œ Double ์‹ค์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ๊ณ„์‚ฐ ํ›„ ๋ณ€์ˆ˜์— ๋„ฃ๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  setText() ํ•จ์ˆ˜๋ฅผ ์“ธ ๋•Œ๋„ String ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์•„๋ž˜์˜ ์ฒซ๋ฒˆ ์งธ ๋ฐฉ๋ฒ•์€ ํ”ํžˆ ์•„๋Š” ๋ฐฉ๋ฒ•์ด๊ณ , ๋‘๋ฒˆ ์งธ ๋ฐฉ๋ฒ•์€ ํฐ ๋”ฐ์˜ดํ‘œ ๋‘๊ฐœ๋งŒ ๋ถ™์—ฌ์ฃผ๋ฉด String ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. ๋‘๋ฒˆ ์งธ ๋ฐฉ๋ฒ•์ด ๋” ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ ธ์„œ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. textResult.setText( Double.toS..

๐Ÿค–Android/Java 2023. 12. 22. 13:11
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - ์ด๋ฏธ์ง€๋ทฐ scaleType์œผ๋กœ ํ™”๋ฉด ์ด๋ฏธ์ง€๋กœ ๊ฝ‰์ฐจ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ์ด๋ฏธ์ง€ ๋ทฐ(Image View)์— ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•  ๋•Œ, ScaleType์€ ์ด๋ฏธ์ง€๋ฅผ ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œ์‹œํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค. ScaleType์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๊ฐ€ ๋ทฐ์— ๋งž์ถฐ์ง€๊ณ  ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋ ์ง€๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ์ด๋ฏธ์ง€๋ทฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ถˆ๋Ÿฌ์˜จ ์ด๋ฏธ์ง€๊ฐ€ ์‚ฌ์ด์ฆˆ์— ๋งž๊ฒŒ ๊ฝ‰ ์ฐจ๋„๋ก ์„ค์ •ํ•ด๋ณด์ž. ScaleType ์ด๋ฏธ์ง€ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•˜๋ฉด ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ๋น„์œจ์— ๋”ฐ๋ผ์„œ ์ด๋ฏธ์ง€๋ทฐ ์—ฌ๋ฐฑ์ด ์ƒ๊ธด๋‹ค. ์—ฌ๋ฐฑ์„ ์—†์•จ ๋•Œ, ์ธ๋„ค์ผ ์ด๋ฏธ์ง€ ์กฐ์ ˆ์— Scale Type ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. Attributes ์—์„œ ScaleType ์„ centerCrop ์œผ๋กœ ๋ฐ”๊พธ์–ด ์ฃผ๋ฉด ์ด๋ฏธ์ง€๋ทฐ ๋‚ด์˜ ์ด๋ฏธ์ง€๊ฐ€ ์—ฌ๋ฐฑ ์—†์ด ๊ฝ‰์ฐจ๊ฒŒ ๋ฐ”๋€๋‹ค. ScaleType ์†์„ฑ๋“ค center: ์ด..

๐Ÿค–Android/Java 2023. 12. 22. 12:59