0

i develop apps android calculator, but when i try to run, i just found error on logCat 07-02 19:41:00.152: ERROR/AndroidRuntime(577): Caused by: java.lang.NullPointerException

this my coding :

package kalkulator.stekom;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class kalkulator extends Activity {
    /** Called when the activity is first created. */

    Button btnReset, btnSatu, btnDua, btnTiga, btnEmpat, btnLima, btnEnam, btnTujuh, btnDelapan, btnSembilan, btnNol, btnKali, btnBagi, btnKurang, btnTambah, btnSamadengan ;
    EditText txtDisplay;
    private double total1=0.0;
    private double total2=0.0;
    private char operasi_matematika;
    private String temp;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        txtDisplay = (EditText)findViewById(R.id.txtDisplay);
        btnSatu = (Button)findViewById(R.id.btnSatu);
        btnDua = (Button)findViewById(R.id.btnDua);
        btnTiga = (Button)findViewById(R.id.btnTiga);
        btnEmpat = (Button)findViewById(R.id.btnEmpat);
        btnLima = (Button)findViewById(R.id.btnLima);
        btnEnam = (Button)findViewById(R.id.btnEnam);
        btnTujuh = (Button)findViewById(R.id.btnTujuh);
        btnDelapan = (Button)findViewById(R.id.btnDelapan);
        btnSembilan = (Button)findViewById(R.id.btnSembilan);
        btnNol = (Button)findViewById(R.id.btnNol);
        btnKali = (Button)findViewById(R.id.btnKali);
        btnBagi = (Button)findViewById(R.id.btnBagi);
        btnTambah = (Button)findViewById(R.id.btnTambah);
        btnKurang = (Button)findViewById(R.id.btnKurang);
        btnReset = (Button)findViewById(R.id.btnReset);

        //tombol satu
        btnSatu.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnSatuText = txtDisplay.getText().toString() + btnSatu.getText().toString();
                txtDisplay.setText(btnSatuText);
            }
        });

        //tombol dua
        btnDua.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnDuaText = txtDisplay.getText().toString() + btnDua.getText().toString();
                txtDisplay.setText(btnDuaText);
            }
        });

        //tombol tiga
        btnTiga.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnTigaText = txtDisplay.getText().toString() + btnTiga.getText().toString();
                txtDisplay.setText(btnTigaText);
            }
        });

        //tombol empat
        btnEmpat.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnEmpatText = txtDisplay.getText().toString() + btnEmpat.getText().toString();
                txtDisplay.setText(btnEmpatText);
            }
        });

        //tombol lima
        btnLima.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnLimaText = txtDisplay.getText().toString() + btnLima.getText().toString();
                txtDisplay.setText(btnLimaText);
            }
        });

        //tombol enam
        btnEnam.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnEnamText = txtDisplay.getText().toString() + btnEnam.getText().toString();
                txtDisplay.setText(btnEnamText);
            }
        });

        //tombol tujuh
        btnTujuh.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnTujuhText = txtDisplay.getText().toString() + btnTujuh.getText().toString();
                txtDisplay.setText(btnTujuhText);
            }
        });

        //tombol delapan
        btnDelapan.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnDelapanText = txtDisplay.getText().toString() + btnDelapan.getText().toString();
                txtDisplay.setText(btnDelapanText);
            }
        });

        //tombol sembilan
        btnSembilan.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnSembilanText = txtDisplay.getText().toString() + btnSembilan.getText().toString();
                txtDisplay.setText(btnSembilanText);
            }
        });

        //tombol nol
        btnNol.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String btnNolText = txtDisplay.getText().toString() + btnNol.getText().toString();
                txtDisplay.setText(btnNolText);
            }
        });

        //tombol kali
        btnKali.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String button_text = btnKali.getText().toString();
                getOperator(button_text);
            }
        });

        //tombol bagi
        btnBagi.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String button_text = btnBagi.getText().toString();
                getOperator(button_text);
            }
        });

        //tombol kurang
        btnKurang.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String button_text = btnKurang.getText().toString();
                getOperator(button_text);
            }
        });

        //tombol tambah
        btnTambah.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String button_text = btnTambah.getText().toString();
                getOperator(button_text);
            }
        });

        btnReset.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                txtDisplay.setText(null);
            }
        });

        btnSamadengan.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                hitung();
            }});

    }

    private void getOperator(String btnText) {
        // TODO Auto-generated method stub
        operasi_matematika = btnText.charAt(0);
        total1 = total1 + Double.parseDouble(txtDisplay.getText().toString());
        txtDisplay.setText("");
    }


    private void hitung() {
        // TODO Auto-generated method stub
        switch(operasi_matematika){
        case '+':
            total2 = total1 + Double.parseDouble(txtDisplay.getText().toString());
            break;
        case '-':
            total2 = total1 - Double.parseDouble(txtDisplay.getText().toString());
            break;
        case '/':
            total2 = total1 / Double.parseDouble(txtDisplay.getText().toString());
            break;
        case '*':
            total2 = total1 * Double.parseDouble(txtDisplay.getText().toString());
            break;
    }
    txtDisplay.setText(Double.toString(total2));
    total1=0.0;
    }

}

be hopefull you can help me

  • 3
    Look at the logcat and it will tell you which line is giving the exception. Then sit what could be null there. If you still need help then post your full stacktrace here. – codeMagic Jul 02 '14 at 12:54
  • Add this : btnSamadengan = (Button)findViewById(R.id.btnSamadengan); after this : btnReset = (Button)findViewById(R.id.btnReset); – Haresh Chhelana Jul 02 '14 at 13:11
  • possible duplicate of [What is a Null Pointer Exception, and how do I fix it?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) – Oleg Estekhin Jul 03 '14 at 04:40

2 Answers2

0

See, you don't initialize btnSamadengan by findViewById. It has default null value. And so you get NPE at line

btnSamadengan.setOnClickListener(new View.OnClickListener() {
nnesterov
  • 1,232
  • 1
  • 10
  • 27
0

Try to add this code :

btnSamadengan = (Button)findViewById(R.id.btnSamadengan);

After this code :

btnReset = (Button)findViewById(R.id.btnReset);
Haresh Chhelana
  • 24,720
  • 5
  • 57
  • 67