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

点击等号,一点反应都没有,求大神帮忙看看

public class MainActivity extends Activity implements OnClickListener {

// 声明控件

Button btn_0, btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8,

btn_9, btn_add, btn_minus, btn_multiply, btn_divide, btn_del,

btn_clear, btn_point, btn_equel;

EditText et_input;

boolean clear_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_add = (Button) findViewById(R.id.btn_add);

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

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

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

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

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

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

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

et_input = (EditText) findViewById(R.id.et);

// 设置按钮的点击事件

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_add.setOnClickListener(this);

btn_minus.setOnClickListener(this);

btn_multiply.setOnClickListener(this);

btn_divide.setOnClickListener(this);

btn_del.setOnClickListener(this);

btn_clear.setOnClickListener(this);

btn_point.setOnClickListener(this);

btn_equel.setOnClickListener(this);

}


@Override

public void onClick(View v) {

// 判断点击的是那个按钮

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_point:

if(clear_flag){

clear_flag=false;

str = "";

et_input.setText("");

}//清空标志位

// 将输入的字符添加到输入框中

et_input.setText(str + ((Button) v).getText());

break;

case R.id.btn_add:

case R.id.btn_minus:

case R.id.btn_multiply:

case R.id.btn_divide:

if(clear_flag){

clear_flag=false;

str = "";

et_input.setText("");

}

et_input.setText(str +" "+ ((Button) v).getText()+" ");

break;

case R.id.btn_del:

if(clear_flag){

clear_flag=false;

str = "";

et_input.setText("");

}else if(str!=null&&!str.equals("")){

et_input.setText(str.substring(0, str.length()-1));

}

break;

case R.id.btn_clear:

clear_flag=false;

str = "";

et_input.setText("");

break;

case R.id.btn_equel :

getResult();

break;

default:

break;

}

}

//计算结果

public void getResult(){

String exp = et_input.getText().toString();

if(exp==null||exp.equals("")){

return;

}

if(exp.contains(" ")){

return;

}

if(clear_flag){

clear_flag=false;

return;

}

clear_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 = d1/d2;

}else{

result = 0 ;

}

}

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("");

}

}

}


正在回答

2 回答

if(exp.contains(" ")){
    return;
}

应该是:

if(!exp.contains(" ")){
    return;
}


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

qq_一缘_0

是因为 et_input.setText(str+" "+((Button)v).getText()+" ");//将运算符添加到输入框中 “ ”中间没有加空格导致的,我的也是这原因
2016-04-04 回复 有任何疑惑可以回复我~
#2

Xx_0000_xX 提问者

非常感谢!采纳有点晚 不好意思
2016-04-14 回复 有任何疑惑可以回复我~

楼主加空格了,你可以这样      把最后这行的et_input.setText("");   注释掉,   或者加个条件判断if(s1.equals("")&&s2.equals("")){et_input.setText("")}

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

Xx_0000_xX 提问者

谢谢 解决了
2016-04-14 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

点击等号,一点反应都没有,求大神帮忙看看

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号