본문 바로가기
Android Studio

[Android 앱개발 입문] 프로젝트 실습 (# 추가하기)

by 젼젼39 2024. 3. 18.

1. activity 이름 변경하는 법

: manifest에서 name 부분 우클릭하고 refactor > rename

 

2. 리소스 파일 재정의

1) 앱 이름 변경 : My Android App 부분을 변경하기 (res>values>strings)

<resources>
    <string name="app_name">My Android App</string>
</resources>

2) 앱 실행 화면에서 표시되는 문자열을 변경하는 방법 1

    : res/layout/start_activity_view.xml에 기술된 TextView 위젯의 android:text 속성 값을 직접 변경하기

    (-) 하드코딩으로 한국어를 사용했을 때 다국어 지원에서 문제가 생김...
        -> resource 파일에서 한글은 _kr로 만들고, string 파일을 또 만들어 다른 언어들을 각각 담게 작성하기 (@ 예시 찾기)

    <TextView
//        android:layout_width="wrap_content"
//        android:layout_height="wrap_content"
        android:text="Hello World!"

3) 앱 실행 환경에서 표시되는 문자열을 변경하는 방법 2

    : res/values/strings.xml 파일에 새로운 문자열 리소스 정의하고,
        그 문자열 리소스를 res/layout/start_activity_view.xml에 기술된 TextView 위젯의 android:text 속성 값으로 지정

<resources>
    ...
    <string name="app_content_text">안드로이드 수강생 여러분 안녕하세요?</string>
</resources>
    <TextView
//        android:layout_width="wrap_content"
//        android:layout_height="wrap_content"
        android:text="@string/app_content_text"

 

 

3. 주사위 앱 만들기

package com.example.lab3_dice

import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.TextView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import kotlin.random.Random

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }

        val tv_num = findViewById<TextView>(R.id.tv_number)
        //findViewById : Roll the Dice 를 id를 가지고 찾겠다는 뜻
        //<> 속 : 어떤 것을 가져올건지. 타입
        //() 속 : 리소스 이름

        val btn_dice = findViewById<Button>(R.id.btn_roll)

        btn_dice.setOnClickListener {
            //버튼이 눌렸을 떄를 표현
            val random = Random
            val num  = random.nextInt(6) + 1
            //6까지인데 시작 값이 1임

            //textview에 표시
            tv_num.text = num.toString()
            //int로 받아오기 때문에 넣기 전에 string으로 바꿔줘야 함
            //textview에 text 쓸 때는 .text 하면 됨

            Log.d("MainActivity", "num = ${num.toString()}")
            //logcat 누르고 roll 여러 번 누른 뒤 아래 화살표 누르면 내려감

        }
    }
}