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

为什么我点击等于号没进行任何操作。。。好烦啊,找了还就还是没找到错误

package com.example.jsq;


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


public class MainActivity extends Activity implements OnClickListener{

	
	 Button btn_0;
	 Button btn_1;
	 Button btn_2;
	 Button btn_3;
	 Button btn_4;
	 Button btn_5;
	 Button btn_6;
	 Button btn_7;
	 Button btn_8;
	 Button btn_9;
	 Button btn_jia;
	 Button btn_jian;
	 Button btn_cheng;
	 Button btn_chu;
	 Button btn_dengyu;
	 Button btn_del;
	 Button btn_c;
	 Button btn_dian;
	 EditText et_input;
	 boolean Flag;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     btn_0 =(Button) findViewById(R.id.btn_0);
     btn_1 =(Button) findViewById(R.id.btn_1);
     btn_2 =(Button) findViewById(R.id.btn_2);
     btn_3 =(Button) findViewById(R.id.btn_3);
     btn_4 =(Button) findViewById(R.id.btn_4);
     btn_5 =(Button) findViewById(R.id.btn_5);
     btn_6 =(Button) findViewById(R.id.btn_6);
     btn_7 =(Button) findViewById(R.id.btn_7);
     btn_8 =(Button) findViewById(R.id.btn_8);
     btn_9 =(Button) findViewById(R.id.btn_9);
     btn_jia =(Button) findViewById(R.id.btn_jia);
     btn_jian =(Button) findViewById(R.id.btn_jian);
     btn_cheng =(Button) findViewById(R.id.btn_cheng);
     btn_chu =(Button) findViewById(R.id.btn_chu);
     btn_dengyu =(Button) findViewById(R.id.btn_dengyu);
     btn_del =(Button) findViewById(R.id.btn_del);
     btn_c =(Button) findViewById(R.id.btn_c);
     btn_dian =(Button) findViewById(R.id.btn_dian);
     //实例化按钮
     et_input =(EditText) findViewById(R.id.et_put);
       //实例化显示框
       btn_0.setOnClickListener(this);
       btn_1.setOnClickListener(this);
       btn_2.setOnClickListener(this);
       btn_3.setOnClickListener(this);
       btn_4.setOnClickListener(this);
       btn_5.setOnClickListener(this);
       btn_6.setOnClickListener(this);
       btn_7.setOnClickListener(this);
       btn_8.setOnClickListener(this);
       btn_9.setOnClickListener(this);
       btn_jia.setOnClickListener(this);
       btn_jian.setOnClickListener(this);
       btn_cheng.setOnClickListener(this);
       btn_chu.setOnClickListener(this);
       btn_dengyu.setOnClickListener(this);
       btn_del.setOnClickListener(this);
       btn_c.setOnClickListener(this);
       btn_dian.setOnClickListener(this);
       
       //设置按钮的点击事件
    }

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		
		String  str = et_input.getText().toString();
		switch(v.getId()){
		case R.id.btn_0:
		case R.id.btn_1:
		case R.id.btn_2:
		case R.id.btn_3:
		case R.id.btn_4:
		case R.id.btn_5:
		case R.id.btn_6:
		case R.id.btn_7:
		case R.id.btn_8:
		case R.id.btn_9:
		case R.id.btn_dian:
			if(Flag){
				Flag=false;
				str="";
			   et_input.setText("");
			}
			et_input.setText(str+((Button)v).getText());
			break;
			
			
		case R.id.btn_jia:
		case R.id.btn_jian:
		case R.id.btn_cheng:
		case R.id.btn_chu:
			if(Flag){
				Flag=false;
				str="";
			   et_input.setText("");
			}
			et_input.setText(str+" "+((Button)v).getText()+" ");
			
			break;
			
		case R.id.btn_dengyu:
			getResult();
			break;
			
		case R.id.btn_del:
			
			 if(str!=null &&!str.equals(""))
			{
				et_input.setText(str.substring(0,str.length()-1));
			}
			 break;
		case R.id.btn_c:
			
				Flag=false;
				str="";
		       et_input.setText("");
			break;
		
			
		
		}
	}
	//运算最后的结果
 private void getResult() {
	String exp =et_input.getText().toString();
	if( exp==null||exp.equals(""))
	{
		return;
	}
	if(!exp.equals(" ")){
		return;
	}
//   if(Flag)
//	{
//		Flag=false;
//		return;
//	}
		Flag = true;
	double result=0;
	String s1=exp.substring(0, exp.indexOf(" "));//运算符前面的字符串
	String op=exp.substring(exp.indexOf(" ")+1, exp.indexOf(" ")+2);//运算符
	String s2=exp.substring(exp.indexOf(" ")+3);//运算符后面的字符串
	if(!s1.equals("")&&!s2.equals("")){
		 Double d1 =Double.parseDouble(s1);
		 Double d2 =Double.parseDouble(s2);
		 if(op.equals("+")){
			  result = d1+d2;
			 
		 }else if(op.equals("-")){
			 
			 result = d1-d2;
		 }
          else if(op.equals("*")){
        	  result = d1*d2;
			 
		 }else if(op.equals("/")){
			 
			 if(d2==0){
				 result=0;
				 
			 }else{
				 
				 result= d1/d2;
			 }
		 }
		 if(!s1.contains(".")&&!s2.contains(".")&&!op.equals("/")){
			 
			 int r=(int)result;
			 et_input.setText(r+"");
		 }else{
			 et_input.setText(result+"");
			 
		 }
	}
	else if(!s1.equals("")&&s2.equals("")){
		
		  et_input.setText(exp);
		
	}
	else if(s1.equals("")&&!s2.equals("")){
		Double d2 =Double.parseDouble(s2);
		if(op.equals("+")){
			  result = 0+d2;
			 
		 }else if(op.equals("-")){
			 
			 result = 0-d2;
		 }
        else if(op.equals("*")){
      	  result = 0;
			 
		 }else if(op.equals("/")){
			 
			
				 result=0;
				 
			 
		 }
			 if(!s2.contains(".")){
				 
				 int r=(int)result;
				 et_input.setText(r+"");
			 }else{
				 et_input.setText(result+"");
				 
			 }
		  
		
	}else {
		
		et_input.setText("");
	}
	}
}


正在回答

1 回答

getResult()方法里的这个判断有问题。比如你输入的是1,1肯定不是" ",返回false,但你这个前面又加了一个!,是非的意思,非加false变成true,所以进入到这个大括号就直接return了,没有结果

if(!exp.equals(" ")){

        return;

    }


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

乔小欠儿

忘了说...把那个!去掉应该就可以了
2015-12-21 回复 有任何疑惑可以回复我~
#2

殇逝丶 提问者

if(!exp.equals(" ")){ return; } 应该改为if(!exp.contains(" ")){ return; }判断有没有空格。。。
2015-12-22 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么我点击等于号没进行任何操作。。。好烦啊,找了还就还是没找到错误

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