마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

NullPointerException 에러 도와주세요

0 추천
package com.cookandroid.project4_1;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {
    EditText edit1, edit2;
    Button btnAdd, btnSub, btnMul, btnDiv, btnRem;
    TextView textResult;
    String num1, num2;
    float result;


    @SuppressLint("SetTextI18n")
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("super simple calculator");

        edit1 = findViewById(R.id.Edit1);
        edit2 = findViewById(R.id.Edit2);

        btnAdd = findViewById(R.id.BtnAdd);
        btnSub = findViewById(R.id.BtnSub);
        btnMul = findViewById(R.id.BtnMul);
        btnDiv = findViewById(R.id.BtnDiv);

        textResult = findViewById(R.id.TextResult);

        btnAdd.setOnClickListener((View v) -> {
            num1 = edit1.getText().toString();
            num2 = edit2.getText().toString();
            result = Float.parseFloat(num1) + Float.parseFloat(num2);
            if (num1.isEmpty() || num2.isEmpty()) {
                Toast.makeText(getApplicationContext(), "Enter number", Toast.LENGTH_SHORT).show();
            } else {
                textResult.setText("calculation result : " + result);
            }
         });




        btnSub.setOnClickListener((View v) -> {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result =  Float.parseFloat(num1) - Float.parseFloat(num2);
                if(num1.isEmpty() || num2.isEmpty()){
                    Toast.makeText(getApplicationContext(), "Enter number", Toast.LENGTH_SHORT).show();
                }else {
                    textResult.setText("calculation result : " + result);
                }
        });

        btnMul.setOnClickListener((View v) -> {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result =  Float.parseFloat(num1) * Float.parseFloat(num2);
                if(num1.isEmpty() || num2.isEmpty()){
                    Toast.makeText(getApplicationContext(), "Enter number", Toast.LENGTH_SHORT).show();
                }else {
                    textResult.setText("calculation result : " + result);
                }
        });

        btnDiv.setOnClickListener((View v) -> {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                if(num1.isEmpty() || num2.isEmpty()){
                    Toast.makeText(getApplicationContext(), "Enter number", Toast.LENGTH_SHORT).show();
                }else {
                    textResult.setText("calculation result : " + result);
                }
                if(Float.parseFloat(num2)==0){
                    Toast.makeText(getApplicationContext(), "Can't be divided by 0",
                            Toast.LENGTH_LONG).show();
                }else
                result =  Float.parseFloat(num1) / Float.parseFloat(num2);
                textResult.setText("calculation result : " + result);


        });

        btnRem.setOnClickListener((View v) -> {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result =  Float.parseFloat(num1) + Float.parseFloat(num2);
                if(num1.isEmpty() || num2.isEmpty()){
                    Toast.makeText(getApplicationContext(), "Enter number", Toast.LENGTH_SHORT).show();
                }else {
                    textResult.setText("calculation result : " + result);
                }

        });
    }
}

생초보입니다. 뭐가 문제인지 모르겠어요ㅜㅜㅜ

도와줘요 (120 포인트) 님이 3월 28일 질문
로그켓에서 나온 에러로그를 올려보세요. 에러메세지에 힌트가 있습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...