728x90
GitHub - Winterwood0118/Week4_Homework
Contribute to Winterwood0118/Week4_Homework development by creating an account on GitHub.
github.com
Lv3 자기소개 페이지 만들기(HomeActivity)
- HomeActivity를 생성해 주세요.
- SignInActivity에서 받은 extra data(아이디)를 화면에 표시합니다.
- ImageView, TextView 외에 각종 Widget을 활용해 자유롭게 화면을 디자인 해주세요.
- 이름, 나이, MBTI 등 자기소개등이 들어가는 위젯을 자유롭게 디자인해주세요.
- 종료 버튼이 눌리면 SignInActivity로 이동하도록 구현합니다. (finish 활용)
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class HomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
val mainIV = findViewById<ImageView>(R.id.iv_logo)
val idValueTV = findViewById<TextView>(R.id.tv_id_value_home)
val nameValueTV = findViewById<TextView>(R.id.tv_name_value_home)
val mbtiValueTV = findViewById<TextView>(R.id.tv_mbti_value_home)
val hobbyValueTV = findViewById<TextView>(R.id.tv_hobby_value_home)
val finishBtn = findViewById<Button>(R.id.btn_finish)
var randomNum = intent.getIntExtra("random", 1)
var imageResource = imageResources[randomNum]
idValueTV.text = intent.getStringExtra("extra_id")
mainIV.setImageResource(imageResource)
//사진 누르면 바꾸기 기능 추가해봄
mainIV.setOnClickListener{
randomNum = (0..4).filter { it != randomNum }.random()
imageResource = imageResources[randomNum]
mainIV.setImageResource(imageResource)
}
finishBtn.setOnClickListener {
finish()
}
}
}
Lv1에서 엑스트라로 넘겨주었던 id를 받아와 출력해주는 기능을 만들었다.
아래 랜덤의 경우에는 Lv3 이후에 요구하는 액티비티를 시작할 때 5가지의 이미지 중 랜덤한 이미지를 띄우는 기능에서 나온 코드이며 외에도 이미지를 눌렀을 때 이미지를 바꾸는 기능을 추가해봤다.
처음에는 random을 이용한 resource 바꾸기를 아래와 같이 작성했다.
val imageResource = resources.getIdentifier("img_$randomNum)}", "drawable", packageName)
하지만 스튜디오에서 권장하지 않는 코드라는 안내문이 나와서 아래처럼 img들을 Array로 관리하고 index에 맞는 Array의 원소를 띄우는 형식으로 바꾸웠다.
val imageResources = arrayOf(
R.drawable.img_1,
R.drawable.img_2,
R.drawable.img_3,
R.drawable.img_4,
R.drawable.img_5
)728x90
'개발' 카테고리의 다른 글
| 03/26 주특기 1주차 개인과제(4) (0) | 2024.03.26 |
|---|---|
| 03/20 주특기 1주차 수준별 과제(1) (0) | 2024.03.20 |
| 03/20 주특기 1주차 개인과제(2) (0) | 2024.03.20 |
| 03/19 주특기 1주차 개인과제(1) (0) | 2024.03.19 |
| 03/18 간단한 키오스크 만들기 - 피드백 반영 (1) | 2024.03.18 |