2017-06-02 78 views
0

我試圖搜索錯誤,但無法找到任何在Android監視器。 當我點擊任何按鈕,它說應用程序不工作。 Android Monitor也沒有生成錯誤。沒有錯誤的androidmonitor仍然應用程序崩潰按鈕單擊

代碼: 公共類MainActivity擴展AppCompatActivity {

Button btn_dot,btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0, btn_add, btn_sub, btn_mul, btn_equals, btn_div, btn_del; 
Double total1 = 0.0, total2 = 0.0; 
EditText et1,tv; 
char op = '0'; 



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

    tv = (EditText) findViewById(R.id.tv); 
    btn1 = (Button) findViewById(R.id.Button1); 
    btn2 = (Button) findViewById(R.id.Button2); 
    btn3 = (Button) findViewById(R.id.Button3); 
    btn4 = (Button) findViewById(R.id.Button4); 
    btn5 = (Button) findViewById(R.id.Button5); 
    btn6 = (Button) findViewById(R.id.Button6); 
    btn7 = (Button) findViewById(R.id.Button7); 
    btn8 = (Button) findViewById(R.id.Button8); 
    btn9 = (Button) findViewById(R.id.Button9); 
    btn0 = (Button) findViewById(R.id.Button0); 
    btn_add = (Button) findViewById(R.id.Button_add); 
    btn_sub = (Button) findViewById(R.id.Button_sub); 
    btn_mul = (Button) findViewById(R.id.Button_mul); 
    btn_div = (Button) findViewById(R.id.Button_divide); 
    btn_equals = (Button) findViewById(R.id.Button_equals); 
    btn_del = (Button) findViewById(R.id.Button_DEL); 
    btn_dot = (Button) findViewById(R.id.Button_dot); 


    btn0.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"0"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 


    btn1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"1"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 


    btn2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"2"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 


    btn3.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"3"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 


    btn4.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"4"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 


    btn5.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"5"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 

    btn6.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"6"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 


    btn7.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"7"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 


    btn8.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"8"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 


    btn9.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"9"; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 

    btn_dot.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      CharSequence val=et1.getText()+"."; 
      et1.setText(val); 
      tv.setText(val); 
     } 
    }); 

    btn_add.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      total1 = Double.parseDouble(et1.getText() + ""); 
      et1.setText(null); 
      et1.setText('+'); 
      tv.append("+"); 
      op = '+'; 
      et1.setText(null); 
      // OpCalculation(); 
     } 
    }); 

    btn_sub.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      total1 = Double.parseDouble(et1.getText() + ""); 
      et1.setText(null); 
      et1.append("-"); 
      tv.append("-"); 
      op = '-'; 
      et1.setText(null); 
      // OpCalculation(); 
     } 
    }); 

    btn_mul.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      total1 = Double.parseDouble(et1.getText() + ""); 
      et1.setText(null); 
      et1.append("*"); 
      tv.append("*"); 
      op = '*'; 
      et1.setText(null); 
      // OpCalculation(); 
     } 
    }); 

    btn_div.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      total1 = Double.parseDouble(et1.getText() + ""); 
      et1.setText(null); 
      et1.append("/"); 
      tv.append("/"); 
      op = '/'; 
      et1.setText(null); 
      // OpCalculation(); 
     } 
    }); 

    btn_equals.setOnClickListener(new View.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
      total2 = Double.parseDouble(et1.getText() + ""); 
      et1.setText(null); 
      if (op == '+') { 
       total1 += total2; 
       String t1=String.valueOf(total1); 
       tv.setText(t1); 
       op='0';} 
      if (op == '-') { 
       total1 -= total2; 
       String t1=String.valueOf(total1); 
       tv.setText(t1); 
       op='0';} 
      if (op == '*') { 
       total1 *= total2; 
       String t1=String.valueOf(total1); 
       tv.setText(t1); 
       op='0';} 
      if (op == '/') { 
       total1 /= total2; 
       String t1=String.valueOf(total1); 
       tv.setText(t1); 
       op='0';} 

     } 
    }); 

    btn_del.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      et1.setText("0"); 
      tv.setText("0"); 
      total1 = 0.0; 
      total2 = 0.0; 
     } 
    }); 

} 

}

+0

ET1變化似乎尚未初始化。 –

回答

0

您的應用程序可能崩潰的位置:

total1 = Double.parseDouble(et1.getText() + ""); 

如你解析整個字符串與運營商和你必須使用這個

et1.getText().toString(); 

希望這會有所幫助。

0

初始化您的EditText ET1,電視中的onCreate那麼像這樣的格式的onclick

 String val=et1.getText().toString()+"0"; 
     et1.setText(val); 
     tv.setText(val); 
+0

感謝您的幫助。我也想問如何爲2+編碼,然後按=使系列2,4,6 ......應該繼續 –

相關問題