为了账号安全,请及时绑定邮箱和手机立即绑定

点击等号计算器就会崩溃 找不出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("") ;
  }
 }
   
}


正在回答

1 回答

http://img1.sycdn.imooc.com//580c8256000123b204230362.jpg

应该是

if(!str.contains(" "))

双引号中间有个空格,

这句代码的意思是“如果 字符串str中不包含空格,那么就要运行”

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312584    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

点击等号计算器就会崩溃 找不出Bug疯了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信