본문 바로가기
개발일지

AppTheme과 계산앱(Java) 실행에 옮겨!

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

 

지난 시간에는 하위 테마의 필수 설정이 누락이 아니였을까, 호출 순서가 엉켜있던걸까

추측 해결하며 다음 진도를 드뎌 진입합니다

 

본의 아니게 지금 만들고 있는 앱의 구조를 다시한번 되짚어보고 각인하는 효과를 ....

 

상단 탭 변경(AppTheme)

왼쪽엔 없고 오른쪽엔 있고???

 

뭔가 이상하다 싶지않나요?

 

<activity android:name="com.example.kotlinsample.MainActivity"
            android:exported="true"
            android:label="com.example.kotlinsample.MainActivity"
            android:theme="@style/AppTheme">

 

해결 방법은 간단했습니다! (아니깐 간단한거겠지)

 

 

상단탭에서 'AppTheme' 를 선택하는 방법이 있네요!

 

계산 앱(Java)

이제 디자인도 연동도 ... 갖은 문제들을 해쳐왔는데 ..

이 앱의 궁극적인 목표는 BMI를 계산 해주는 기능이겠죠? 그럼 기능 추가하러!

 

해당 코드는 BmiJavaActivity.java 입니다

package com.example.kotlinsample;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class BmiJavaActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        UI로 사용할 레이아웃 XML 파일을 지정한다.
        setContentView(R.layout.layout_view_binding);

        findViewById(R.id.bmiButton).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // tallField의 값을 읽어 온다.
                EditText tallField = findViewById(R.id.tallField);
                String tall = tallField.getText().toString();

                // weightField의 값을 읽어 온다.
                EditText weightField = findViewById(R.id.weightField);
                String weight = weightField.getText().toString();

                // BMI를 계산, 체중 / 키 * 키 >> 키를 cm로 입력 받았으니 100으로 나눔
                // Math.pow()는 넘겨받은 파라미터 값을 제곱해 돌려줌
                // ex) Math.pow(2, 3)은 2의 3제곱 8을 돌려줌
                double bmi = Double.parseDouble(weight) / Math.pow(Double.parseDouble(tall) / 100.0, 2);

                // 결과 bmi를 resultLabel에 보임
                TextView resultLabel = findViewById(R.id.resultLabel);
                resultLabel.setText("키: " + tall + ", 체중: " + weight + ", BMI + " + bmi);
            }
        });
    }
}

 

 

728x90
반응형