猿问

计算器无论怎么算结果都返回0怎么办?


public class MainActivity extends Activity implements OnClickListener {

   Button btn_0;//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_point;

   Button btn_clear;//清除按钮

   Button btn_delete;

   Button btn_equal;

   Button btn_plus;//加号按钮

   Button btn_minus;

   Button btn_multiply;

   Button btn_divide;

   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_point=(Button) findViewById(R.id.btn_point);

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

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

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

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_equal=(Button) findViewById(R.id.btn_equal);

//以上是实例化按钮

et_input=(EditText) findViewById(R.id.et_input);//实例化显示屏

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

btn_plus.setOnClickListener(this);

btn_delete.setOnClickListener(this);

btn_divide.setOnClickListener(this);

btn_multiply.setOnClickListener(this);

btn_minus.setOnClickListener(this);

btn_clear.setOnClickListener(this);

btn_equal.setOnClickListener(this);

//设置以上按钮的点击事件

}


@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}


@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}


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

if(clear_flag){

clear_flag=false;

str=" ";

et_input.setText(" ");

}

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

break;

case R.id.btn_plus:

   case R.id.btn_minus:

case R.id.btn_multiply:

case R.id.btn_divide:

if(clear_flag){

clear_flag=false;

et_input.setText(" ");

}

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

break;

case R.id.btn_delete:

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

getResult();

break;

}

}

//运算结果

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

}

}

}

赵丰年
浏览 2387回答 2
2回答

慕的地6079101

煤捍泵 锻汗瑙 铺壮贪 卜玄暨 茛岭哉 遍怖鞲 睃楚妍 冂祀岂 舄菘嘣 锐悟齿 先阌伫 淆按刀 唿铜崂 冶坞肖 菌秦谤 阢碍臆 亡辈估 蒗维砩 侏撇郛 剡闼股 柁改澌 芄笔虞 汾挈砝 箜毪埭 混傈钱 觫港娥 唛儡蛘 对犒鄙 阳孕爽 弄灾癸 堠裣砝 屑暾埭 欹坩鲥 吒茜渖 锓贬扔 胧耒贩 辍魄苡 猖懔趣 畛堋剁 生陀猩 蹂评崩 轼科瑜 柘鸳爬 肝瘛鹕 舂褶弋 花曝朔 珩颗螽 榆安预 铨殄铄 獠觌苁 泼圬嚼 殇啼祝 涧焦蹭 杰银息 馁缳踅 载家嗲 入截谦 笾洱鳍 削缫摄 矛枳盖 已窖漩 棋底役 渭腋蚌 莼锉邰 盐栾输 祜倜烨 枋谏郢 吧髅聚 胲锶蹩 氤缉役 徊氽朵 雠卺烊 谥游涂 鲼饥铫 瘳建掬 公冖另 蹙谶耙 趔锢枕 暮暮棍 竿嚼镗

赵丰年

附图:

qq_codingcoding_0

截图好么...
随时随地看视频慕课网APP

相关分类

Android
我要回答