개발언어/JAVA

자바 어플 개발(팁 계산기)

우주먼지쪼가리 2020. 11. 18. 12:11
반응형
package TipCalculator.gohool.tipcalculator;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText plain;
    private SeekBar seekBar;
    private TextView seekTextView;
    private Button btn;
    private TextView result;
    private int seekPercentage;
    private float enteredBillFloat;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        plain = (EditText) findViewById(R.id.plainId);
        seekBar = (SeekBar) findViewById(R.id.seekBar);
        seekTextView = (TextView) findViewById(R.id.seekBarTextView);
        btn = (Button) findViewById(R.id.btn);
        result = (TextView) findViewById(R.id.result);

        btn.setOnClickListener(this);

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                //0~100까지 설정하는데, 필요에의해 max=20까지 설정 xml에서.
                //조작하고 있는 중 작동
                seekTextView.setText(String.valueOf(seekBar.getProgress() + "%"));
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                //조작하기 시작했을 때 작동
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                //조작을 마무리했을 때 작동
                seekPercentage = seekBar.getProgress();
            }
        });
    }

    @Override
    public void onClick(View v) {
        control();
    }

    public void control() {
        float resultReset = 0.0f;
        if(!plain.getText().toString().equals("")) {
            //plain을 float으로 변환해서 넣어주고, 둘이 곱해서 넣어주고, 다시 스트링으로 변환해서 뽑아주고
            enteredBillFloat = Float.parseFloat(plain.getText().toString());
            resultReset = enteredBillFloat * seekPercentage / 100;
            result.setText( String.valueOf(resultReset) + "원");
        } else {
            Toast.makeText(MainActivity.this, "fuck you", Toast.LENGTH_SHORT).show();
        }



    }
}

 implements는 인터페이스를 구현하는 것이다. 인터페이스와 보통 클래스의 차이는 인터페이스는 정의한 메소드를 구현하지 않아도 된다. 인터페이스를 상속받는 클래스에서 인터페이스에 정의된 메소드를 구현하면 된다라는 구글 검색.

 

구현 후,

btn.setOnClickListener(this);

라는 코드 한 줄 그리고

@Override
public void onClick(View v) {
control();
}

해서 버튼 이벤트를 만들 수 있다.

 

seekTextView.setText(String.valueOf(seekBar.getProgress() + "%"));

int인 seekBar의 값으 가져올때 String 으로 변환 하여 seekTextView에 넣어준다.

 

 

이하 결과.

구현된 어플

반응형