Dev/Android
Android (액티비티와 인텐트, 인텐트 프로젝트 + 레이팅바, 명화 프로젝트)
Walker_
2024. 5. 3. 17:12
1. 액티비티와 인텐트 - 프로젝트
package kr.jeongmo.a0503_project
import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Environment
import android.widget.Button
import androidx.core.app.ActivityCompat
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val btnNewActivity = findViewById<Button>(R.id.btnNewActivity)
btnNewActivity.setOnClickListener {
val intent = Intent(applicationContext, SecondActivity::class.java)
startActivity(intent)
}
}
}
package kr.jeongmo.a0503_project
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
class SecondActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.second)
val btnReturn: Button = findViewById<Button>(R.id.btnReturn)
btnReturn.setOnClickListener {
finish()
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnNewActivity"
android:text="새화면 열기"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#00ff00"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnReturn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="돌아가기"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kr.jeongmo.a0503_project">
<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_project">
<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=".SecondActivity"/>
</application>
</manifest>
2. 인텐트 프로젝트, 레이팅바
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RatingBar
android:id="@+id/ratingBar2"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="10"
android:stepSize="1" />
<RatingBar
android:id="@+id/ratingBar3"
style="?android:attr/ratingBarStyleIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rating="1.5" />
<Button
android:id="@+id/btnIncrease"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="증가시키기" />
<Button
android:id="@+id/btnDecrease"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="감소시키기" />
</LinearLayout>
package kr.jeongmo.a0503_intent_projcet
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.RatingBar
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val ratingBar1 = findViewById<RatingBar>(R.id.ratingBar1)
val ratingBar2 = findViewById<RatingBar>(R.id.ratingBar2)
val ratingBar3 = findViewById<RatingBar>(R.id.ratingBar3)
val btnIncrease = findViewById<Button>(R.id.btnIncrease)
val btnDecrease = findViewById<Button>(R.id.btnDecrease)
btnIncrease.setOnClickListener {
ratingBar1.rating = ratingBar1.rating + ratingBar1.stepSize
ratingBar2.rating = ratingBar2.rating + ratingBar2.stepSize
ratingBar3.rating = ratingBar3.rating + ratingBar3.stepSize
}
btnDecrease.setOnClickListener {
ratingBar1.rating = ratingBar1.rating - ratingBar1.stepSize
ratingBar2.rating = ratingBar2.rating - ratingBar2.stepSize
ratingBar3.rating = ratingBar3.rating - ratingBar3.stepSize
}
}
}
3. 명화 프로젝트
- 사진 파일 9장 drawable에 추가
package kr.jeongmo.a0503_intent_projcet
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()
}
}
package kr.jeongmo.a0503_intent_projcet
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class ResultActivity:AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.result)
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3">
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic1"/>
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic2"/>
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic3"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3">
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic4"/>
<ImageView
android:id="@+id/imageView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic5"/>
<ImageView
android:id="@+id/imageView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic6"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3">
<ImageView
android:id="@+id/imageView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic7"/>
<ImageView
android:id="@+id/imageView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic8"/>
<ImageView
android:id="@+id/imageView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:src="@drawable/pic9"/>
</LinearLayout>
<Button
android:id="@+id/btnResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="투표종료"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:stretchColumns="0">
<TableRow>
<TextView android:id="@+id/textView1"
android:layout_gravity="center_vertical"
android:text="그림1"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar1"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<TextView android:id="@+id/textView2"
android:layout_gravity="center_vertical"
android:text="그림2"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar2"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<TextView android:id="@+id/textView3"
android:layout_gravity="center_vertical"
android:text="그림3"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar3"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<TextView android:id="@+id/textView4"
android:layout_gravity="center_vertical"
android:text="그림4"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar4"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<TextView android:id="@+id/textView5"
android:layout_gravity="center_vertical"
android:text="그림5"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar5"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<TextView android:id="@+id/textView6"
android:layout_gravity="center_vertical"
android:text="그림6"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar6"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<TextView android:id="@+id/textView7"
android:layout_gravity="center_vertical"
android:text="그림7"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar7"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<TextView android:id="@+id/textView8"
android:layout_gravity="center_vertical"
android:text="그림8"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar8"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<TextView android:id="@+id/textView9"
android:layout_gravity="center_vertical"
android:text="그림9"
android:textSize="15dp" />
<RatingBar
android:id="@+id/ratingBar9"
style="?android:attr/ratingBarStyleIndicator"
android:layout_gravity="right" />
</TableRow>
<TableRow>
<Button android:id="@+id/btnReturn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_span="2"
android:text="돌아가기" />
</TableRow>
</TableLayout>
공부 과정을 정리한 것이라 내용이 부족할 수 있습니다.
부족한 내용은 추가 자료들로 보충해주시면 좋을 것 같습니다.
읽어주셔서 감사합니다 :)