简体   繁体   English

使计算器时android eclipse中的Java.lang.nullPointerException

[英]Java.lang.nullPointerException in android eclipse when make calculator

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 我开发了应用程序android计算器,但是当我尝试运行时,我刚刚在logCat 07-02 19:41:00.152上发现错误:ERROR / AndroidRuntime(577):由以下原因引起: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 希望你能帮助我

See, you don't initialize btnSamadengan by findViewById . 看,您没有通过findViewById初始化btnSamadengan It has default null value. 它具有默认的null值。 And so you get NPE at line 这样您就可以在线获得NPE

btnSamadengan.setOnClickListener(new View.OnClickListener() {

Try to add this code : 尝试添加以下代码:

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

After this code : 在此代码之后:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM