본문 바로가기
개발일지

Java 변수 샘플 앱

by 앱또웹 2024. 11. 18.
728x90
반응형

이제 UI가 메인 액티비티랑 연결되었으니
기능 구현을 해보아요!
 
최초 화면이 보일 때 시간을 보여주고 버튼이 클릭된 횟수를 화면에 나타내고
기능 구현을 위해 변수를 사용하는데,
Java에서 '타입'을 적고 '변수' 이름을 적어 편집합니다
 

VariableJavaActivity.java
package com.example.kotlinsample;

import android.os.Bundle;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.text.SimpleDateFormat;
import java.util.Locale;

public class VariableJavaActivity extends AppCompatActivity {

    // 버튼이 클릭된 횟수를 저장할 변수
    int clickCount = 0;
    // Activity의 시작시간을 저장하는 변수
    long startTime = System.currentTimeMillis();
    // Activity 시작시간을 보여주는 TextView
    TextView startTimeLabel;
    // 클릭된 횟수를 보여주는 TextView
    TextView clickCountLabel;
    // 클릭 버튼
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // UI로 사용할 레이아웃 XML 파일을 지정한다.
        setContentView(R.layout.layout_variable);

        // 레이아웃에서 startTimeLebel을 찾아 바인딩한다.
        startTimeLabel = findViewById(R.id.startTimeLabel);
        // 레이아웃에서 clickCountLabeld을 찾아 바인딩한다.
        clickCountLabel = findViewById(R.id.clickCountLabel);
        // 레이아웃에서 button을 찾아 바인딩한다.
        button = findViewById(R.id.button);
        // 시작시간을 텍스트 형태로 변환
        String timeText = new SimpleDateFormat("HH:mm:ss", Locale.KOREA).format(startTime);
        // 시작시간을 TextView에 보여줌
        startTimeLabel.setText("Activity 시작시간: " + timeText);
        // 클릭된 횟수 보여줌
        clickCountLabel.setText("버튼이 클릭된 횟수: " + clickCount);
        // 버튼에 이벤트 리스너 등록
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 클릭된 횟수 추가
                clickCount = clickCount + 1;
                // UI에 클릭횟수 다시 보여줌
                clickCountLabel.setText("버튼이 클릭된 횟수: " + clickCount);
            }
        });
    }
}

 
먼저 'startTime' 변수에 시작 시간을 저장합니다

long startTime = System.currentTimeMillis();

'System.currentTimeMillis()' 함수는 현재 시간을 밀리세컨드(1/1000) 단위로 리턴하는 함수입니다
예를 들어 현재시간이 '2018년 1월 1일 0시 0분 0초' = '1514764800000'
이런 값을 반환해 줍니다
 
해당 값은 '1970년 1월 1일 이후로 몇 밀리세컨드가 지났는지'를 정수 형태로 변환하여
'long' 타입의 변수에 저장합니다

String timeText = new SimpleDateFormat("HH:mm:ss", Locale.KOREA).format(stratTime);

'long' 타입의 변수를 정수 형태로 반환하다 보니 '텍스트'로 변환을 해야지
사용자가 시각적으로 보기 편하겠죠?
 
'SimpleDateFormat' 클래스는 '시간과 관련된 텍스트를 포맷화' 하는 클래스입니다!
 
'button.setOnClickListener' 버튼으로 클릭 시 '1'을 더해 그 값을 'TextView'에 보여주는 이벤트 리스너로 코드를 마무리해주었습니다

728x90
반응형