요약
1. FinishActivity의 다시 버튼을 누르면 메인 화면(MainActivity)으로 돌아가게 하였음.
2. 게임 화면(PlayActivity), 결과 화면(FinishActivity)에서는 뒤로 가기 버튼이 작동이 안 되게 하였음.
3. 제작자 블로그 버튼을 만들어 이 블로그에 쓰여져 있는 후기글로 갈 수 있도록 하였다.(절대 방문수 빨아먹으려고 만들어둔 게 아니다.)
본문
1. FinishActivity의 다시 버튼 구현
다시 버튼을 구현하여, MainActivity로 이동하도록 하였다.
binding.returnButton.setOnClickListener {
val intent = Intent(this@FinishActivity, MainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) // 실행할 activity가 이미 스택에 존재하면 해당 activity 위에 존재하는 다른 activity 모두 종료시킨다.
startActivity(intent)
finish()
}
FLAG_ACTIVITY_CLEAR_TOP을 사용하면, MainActivity가 이미 스택에 존재하므로, MainActivity 위에 있는 액티비티들을 전부 종료시킨다.
2. 뒤로 가기 버튼 막음
override fun onBackPressed() {
// super.onBackPressed()
}
super.onBackPressed()를 주석 처리하면 뒤로 가기 버튼이 해당 액티비티에서 작동하지 않는다.
3. 특정 URI로 이동하는 버튼 구현
binding.blogButton.setOnClickListener {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://littlesam95.tistory.com/188"))
startActivity(intent)
}
이러면 본인 블로그의 188번째 글로 이동할 수 있다.
FinishActivity.kt
package com.bodan.maplebgm
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import androidx.core.app.ActivityCompat
import com.bodan.maplebgm.databinding.ActivityFinishBinding
class FinishActivity : AppCompatActivity() {
// 뷰 바인딩
private var mBinding : ActivityFinishBinding? = null
private val binding get() = mBinding!!
var finalScore : Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 뷰 바인딩
mBinding = ActivityFinishBinding.inflate(layoutInflater)
setContentView(binding.root)
if (intent.hasExtra("score")) {
finalScore = intent.getIntExtra("score", 0)
}
Toast.makeText(applicationContext, "게임이 종료되었습니다.", Toast.LENGTH_SHORT).show()
if (finalScore == 0) {
binding.score.setImageResource(R.drawable.zero)
}
// ....
else if (finalScore == 30) {
binding.score.setImageResource(R.drawable.thirty)
}
// 메인 화면으로 돌아가기
binding.returnButton.setOnClickListener {
val intent = Intent(this@FinishActivity, MainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) // 실행할 activity가 이미 스택에 존재하면 해당 activity 위에 존재하는 다른 activity 모두 종료시킨다.
startActivity(intent)
finish()
}
// 앱 종료
binding.exitButton.setOnClickListener {
ActivityCompat.finishAffinity(this)
System.exit(0);
}
// 제작자놈 블로그로 이동
binding.blogButton.setOnClickListener {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://littlesam95.tistory.com/188"))
startActivity(intent)
}
}
override fun onBackPressed() {
// super.onBackPressed()
}
}
다음 할 일
여기까지 하고 여러 주변 분들에게 테스트를 부탁드려 몇 가지의 피드백을 받았다.
끝내는 게 아니고.. 일단 여기에서 보류하고, 친구가 부탁한 다른 앱을 만들어보려고 한다.
GitHub
https://github.com/littlesam95/Maplebgm
'개인 프로젝트 > 안드로이드' 카테고리의 다른 글
[개인 프로젝트] 설빙 레시피 앱 #2 (0) | 2022.03.23 |
---|---|
[개인 프로젝트] 설빙 레시피 앱 #1 (0) | 2022.03.14 |
[메이플 브금 맞추기] BGM 목록 (0) | 2022.03.11 |
[메이플 브금 맞추기] 게임 하는 법 (0) | 2022.03.11 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #7 (0) | 2022.03.10 |