当前位置: 代码迷 >> Android >> 计算器的演算控件不能连续点击2次,求高手解答!
  详细解决方案

计算器的演算控件不能连续点击2次,求高手解答!

热度:71   发布时间:2016-05-01 14:59:14.0
计算器的运算控件不能连续点击2次,求高手解答!!!!

计算器的运算button连续点击2次就会报错,我知道是什么原因,但是就是不知道该怎么写。。。
怎样让它连续点击只有一次起作用?
下面是我的运算代码。。。求高手解答~~~!!!!
 butjia.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag == 0){
flag = 1;
}
else if(flag == -1){
editText1_value1 = "" + result ;
editText1_value2 = "" ;
flag = 1;
}
else{
int m = calulate();
editText1_value1 = "" + m;
editText1_value2 = "";
flag = 1;
}
}
 
  });
  butjian.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag == 0){
flag = 2;
}
else if(flag == -1){
editText1_value1 = "" + result ;
editText1_value2 = "" ;
flag = 2;
}
else{
int m = calulate();
editText1_value1 = "" + m;
editText1_value2 = "";
flag = 2;
}
}
 
  });
  butcheng.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag == 0){
flag = 3;
}
else if(flag == -1){
editText1_value1 = "" + result ;
editText1_value2 = "" ;
flag = 3;
}
else{
int m = calulate();
editText1_value1 = "" + m;
editText1_value2 = "";
flag = 3;
}
}
 
  });
  butchu.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag == 0){
flag = 4;
}
else if(flag == -1){
editText1_value1 = "" + result ;
editText1_value2 = "" ;
flag = 4;
}
else{
int m = calulate();
editText1_value1 = "" + m;
editText1_value2 = "";
flag = 4;
}
}
 
  });
  butdengyu.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag == 0){
editText1.setText(editText1_value1);
}else{
calulate();
}
}
 
  });
  butce.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
result = 0;
flag = 0;
editText1.setText("");
 
  }});
   
  }
  public int calulate(){
  int a,b;
  a=Integer.parseInt(editText1_value1);
  b=Integer.parseInt(editText1_value2);
  switch(flag){
  case 1: result = a+b ; 
  editText1.setText(""+result);
  editText1_value1 = "";
  editText1_value2 = "";
  flag = -1;
  break;
  case 2: result = a-b;
  editText1.setText(""+result);
  editText1_value1 = "";
  editText1_value2 = "";
  flag = -1;
  break;
  case 3: result = a*b;
editText1.setText(""+result);
editText1_value1 = "";
  相关解决方案