본문 바로가기

안드로이드

카운팅 앱 예제, 계산기 예제(frameLayout, javascript사용)

count하는 앱

 

람다식으로 ! 

 

버튼의 모든 정보(컨텍스트)는 view에 있다. 이 view는 안드로이드 os로부터 받아요. 우리 앱이 os에 던져줘요.

 

 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="409dp"
        android:layout_height="wrap_content"
        android:background="#009688"
        android:minHeight="?attr/actionBarSize"
        android:theme="?attr/actionBarTheme"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/tv_count"
        android:layout_width="39dp"
        android:layout_height="59dp"
        android:layout_marginTop="280dp"
        android:gravity="center"
        android:text="2"
        android:textColor="#E91E63"
        android:textColorHint="#000000"
        android:textSize="36sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/toolbar"
        app:layout_constraintVertical_bias="0.0" />

    <Button
        android:id="@+id/btn_add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="64dp"
        android:layout_marginBottom="76dp"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <Button
        android:id="@+id/btn_minus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="64dp"
        android:layout_marginBottom="76dp"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>

 

 

 

package org.linda.countingapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "Main_Activity";

    private Button btnAdd, btnMinus;
    private TextView tvCount;
    private  int count = 0;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tvCount = findViewById(R.id.tv_count);
        tvCount.setText(count+"");
        btnAdd = findViewById(R.id.btn_add);
        btnMinus = findViewById(R.id.btn_minus);


        //리스너에 콜백메서드 달았아요. 인터페이스입니다.
        btnAdd.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  Log.d(TAG, "onClick: btnAdd"+view.get);
                  count++;
                  tvCount.setText(count+"");
              }
          });

        btnMinus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(count=<0) {
                    tvCount.setText("0");
                } else {
                count--;
                tvCount.setText(count+"");
                }
            }
        });
    }
}

 

 

 


 

 


 

계산기 만들기

https://github.com/Moonseonhyeon/calculator

후입표기식, 전입표기식 이런거로 안함

 

자바스크립트가 들고 있는 eval

자바스크립트 라이브러리 들고 와서 

 

implementation 'io.apisense:rhino-android:1.0'

 

sync 하기!