Learn & Record
Android (명화 선호도 투표 프로젝트 기능 추가 ) 본문
1. 명화 선호도 투표 프로젝트 기능 추가
package kr.jeongmo.a0503_intent_projcet
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import android.widget.RatingBar
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "명화 선호도 투표"
// 투표수를 저장할 배열
val voteCounts = IntArray(9)
// 이미지 버튼 객체 배열
val images = arrayOfNulls<ImageView>(9)
// 이미지 버튼 Id 배열
val imageIds = arrayOf(
R.id.imageView1, R.id.imageView2, R.id.imageView3,
R.id.imageView4, R.id.imageView5, R.id.imageView6,
R.id.imageView7, R.id.imageView8, R.id.imageView9
)
// 이미지 이름 문자열 배열
val imageNames = arrayOf(
"독서하는 소녀", "꽃장식 모자 소녀", "부채를 든 소녀",
"이레느깡 단 베르양", "잠자는 소녀", "테라스의 두 자매",
"피아노 레슨", "피아노 앞의 소녀들", "해변에서"
)
for (i in imageIds.indices) {
images[i] = findViewById(imageIds[i])
images[i]!!.setOnClickListener {
voteCounts[i]++
Toast.makeText(applicationContext, "${imageNames[i]} : 총 ${voteCounts[i]} 표", Toast.LENGTH_SHORT).show()
}
}
val btnResult = findViewById<Button>(R.id.btnResult)
btnResult.setOnClickListener {
val intent = Intent(applicationContext, ResultActivity::class.java)
intent.putExtra("voteCounts", voteCounts)
intent.putExtra("imageNames", imageNames)
startActivity(intent)
}
}
}
- MainActivity에 btnResult 코드 추가
package kr.jeongmo.a0503_intent_projcet
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import android.widget.RatingBar
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class ResultActivity:AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.result)
// MainActivity에서 보낸 투표 결과 값을 받음
title = "투표결과"
val intent = intent
val voteCounts = intent.getIntArrayExtra("voteCounts")
val imageNames = intent.getStringArrayExtra("imageNames")
val textViews = arrayOfNulls<TextView>(9)
val ratingBars = arrayOfNulls<RatingBar>(9)
// 9개의 TextView, RatingBar id 배열
val textViewIds = arrayOf(R.id.textView1, R.id.textView2, R.id.textView3,
R.id.textView4, R.id.textView5, R.id.textView6,
R.id.textView7, R.id.textView8, R.id.textView9)
val ratingBarIds = arrayOf(R.id.ratingBar1, R.id.ratingBar2, R.id.ratingBar3,
R.id.ratingBar4, R.id.ratingBar5, R.id.ratingBar6,
R.id.ratingBar7, R.id.ratingBar8, R.id.ratingBar9 )
for (i in voteCounts!!.indices) {
textViews[i] = findViewById(textViewIds[i])
textViews[i]!!.text = imageNames!![i]
ratingBars[i] = findViewById(ratingBarIds[i])
ratingBars[i]!!.rating = voteCounts[i].toFloat()
}
val btnReturn = findViewById<Button>(R.id.btnReturn)
btnReturn.setOnClickListener {
finish()
}
}
}
- ResultActivity에 위 코드 추가
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kr.jeongmo.a0503_intent_projcet">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.0503_Intent_projcet">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ResultActivity"/>
</application>
</manifest>
- manifests 코드 추가


공부 과정을 정리한 것이라 내용이 부족할 수 있습니다.
부족한 내용은 추가 자료들로 보충해주시면 좋을 것 같습니다.
읽어주셔서 감사합니다 :)
'Dev > Android' 카테고리의 다른 글
Android (액티비티 생명주기, 로그캣, 액티비티 테스트, 안드로이드 4대 구성요소, 디자인탭 활용, 액티비티와 프래그먼트) (0) | 2024.05.09 |
---|---|
Android (양방향 액티비티, 암시적 인텐트, 액티비티와 인텐트) (0) | 2024.05.08 |
Android (액티비티와 인텐트, 인텐트 프로젝트 + 레이팅바, 명화 프로젝트) (0) | 2024.05.03 |
Android (파일 처리 응용, SD카드 폴더 / 파일 생성 및 삭제, SD카드 폴더 / 파일 목록 출력, 파일처리 - 프로젝트, 이미지 번호 표시) (0) | 2024.05.02 |
Android (파일 읽기, 쓰기, raw 폴더 파일 처리) (0) | 2024.05.01 |