点击等号计算器就会崩溃 找不出Bug疯了
package com.example.demojsq;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements OnClickListener{
private Button but_c ; //删除按钮
private Button but_del ; //清除按钮
private Button but_cheng ; //乘号按钮
private Button but_chu ; //除号按钮
private Button but_7 ; //数字7按钮
private Button but_8 ; //数字8按钮
private Button but_9 ; //数字9按钮
private Button but_jia ; //加号按钮
private Button but_4 ; //数字4按钮
private Button but_5 ; //数字5按钮
private Button but_6 ; //数字6按钮
private Button but_jian ; //减号按钮
private Button but_1 ; //数字1按钮
private Button but_2 ; //数字2按钮
private Button but_3 ; //数字3按钮
private Button but_dian ; //小数点按钮
private Button but_0 ; //数字0按钮
private Button but_equse ; //等号按钮
private EditText et_import ; //显示输入文本的显示器
boolean falge ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
but_c = (Button) findViewById(R.id.but_c) ;
but_del = (Button) findViewById(R.id.but_del) ;
but_cheng = (Button) findViewById(R.id.but_cheng) ;
but_chu = (Button) findViewById(R.id.but_chu) ;
but_7 = (Button) findViewById(R.id.but_7) ;
but_8 = (Button) findViewById(R.id.but_8) ;
but_9 = (Button) findViewById(R.id.but_9) ;
but_jia = (Button) findViewById(R.id.but_jia) ;
but_4 = (Button) findViewById(R.id.but_4) ;
but_5 = (Button) findViewById(R.id.but_5) ;
but_6 = (Button) findViewById(R.id.but_6) ;
but_jian = (Button) findViewById(R.id.but_jian) ;
but_1 = (Button) findViewById(R.id.but_1) ;
but_2 = (Button) findViewById(R.id.but_2) ;
but_3 = (Button) findViewById(R.id.but_3) ;
but_dian = (Button) findViewById(R.id.but_dian) ;
but_0 = (Button) findViewById(R.id.but_0) ;
but_equse = (Button) findViewById(R.id.but_equse) ;
//实例化按钮
et_import = (EditText) findViewById(R.id.editText1) ;
//实例化文本输入框
but_c.setOnClickListener(this) ;
but_del.setOnClickListener(this) ;
but_cheng.setOnClickListener(this) ;
but_chu.setOnClickListener(this) ;
but_7.setOnClickListener(this) ;
but_8.setOnClickListener(this) ;
but_9.setOnClickListener(this) ;
but_jia.setOnClickListener(this) ;
but_4.setOnClickListener(this) ;
but_5.setOnClickListener(this) ;
but_6.setOnClickListener(this) ;
but_jian.setOnClickListener(this) ;
but_1.setOnClickListener(this) ;
but_2.setOnClickListener(this) ;
but_3.setOnClickListener(this) ;
but_dian.setOnClickListener(this) ;
but_0.setOnClickListener(this) ;
but_equse.setOnClickListener(this) ;
//设置点击事件
}
@Override
public void onClick(View arg0) {
String str = et_import.getText().toString() ;
switch (arg0.getId()) {
case R.id.but_0:
case R.id.but_1:
case R.id.but_2:
case R.id.but_3:
case R.id.but_4:
case R.id.but_5:
case R.id.but_6:
case R.id.but_7:
case R.id.but_8:
case R.id.but_9:
case R.id.but_dian:
if(falge){
falge = false ;
et_import.setText("") ;
}
et_import.setText(str+((Button)arg0).getText()) ;
break;
case R.id.but_jia:
case R.id.but_jian:
case R.id.but_cheng:
case R.id.but_chu :
if(falge){
falge = false ;
et_import.setText("") ;
}
et_import.setText(str+((Button)arg0).getText()) ;
break;
case R.id.but_c :
if(str!=null&&!str.equals("")){
et_import.setText(str.substring(0,str.length()-1)) ;
}
case R.id.but_del:
if(falge){
falge = false ;
et_import.setText("") ;
}
et_import.setText("") ;
break ;
case R.id.but_equse :
getSum() ;
break ;
}
}
public void getSum(){
String str = et_import.getText().toString() ;
if(str==null||str.equals("")){
return ;
}
if(!str.contains("")){
return ;
}
if(falge){
falge = false ;
return ;
}
falge = true ;
double ruse = 0 ;
String s1 = str.substring(0, str.indexOf(" ")) ;
String op = str.substring(str.indexOf(" ")+1, str.indexOf(" ")+2) ;
String s2 = str.substring(str.indexOf(" ")+3) ;
if(!s1.equals("")&&!s2.equals("")){
double d1 = Double.parseDouble(s1) ;
double d2 = Double.parseDouble(s2) ;
if(op.equals("+")){
ruse = d1+d2 ;
}else if(op.equals("-")){
ruse = d1-d2 ;
}else if(op.equals("*")){
ruse = d1*d2 ;
}else if(op.equals("/")){
if(d2==0){
ruse = 0;
}else{
ruse=d1/d2 ;
}
}
if(!s1.contains(".")&&!s2.contains(".")){
int ru = (int) ruse ;
et_import.setText(ru+" ") ;
}else{
et_import.setText(ruse+"") ;
}
}else if(!s1.equals("")&&s2.equals("")){
et_import.setText(str) ;
}else if(s1.equals("")&&!s2.equals("")){
double d2 = Double.parseDouble(s2) ;
if(op.equals("+")){
ruse = 0+d2 ;
}else if(op.equals("-")){
ruse = 0-d2 ;
}else if(op.equals("*")){
ruse = 0*d2 ;
}else if(op.equals("/")){
ruse = 0;
}
}else{
et_import.setText("") ;
}
}
}