android计算器弹窗,做一个小计算器闪退。。。大神求解

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package com.example.calculator;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AutoCompleteTextView;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener{

private TextView textView1;

private Button buttonc;

private Button buttondel;

private Button buttondevide;

private Button buttonmultiply;

private Button button7;

private Button button8;

private Button button9;

private Button buttonminus;

private Button button4;

private Button button5;

private Button button6;

private Button buttonplus;

private Button button1;

private Button button2;

private Button button3;

private Button button0;

private Button buttonpoint;

private Button buttonequal;

boolean clearflag;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

textView1=(TextView) findViewById(R.id.textView1);

buttonc.setOnClickListener(this);

buttondel.setOnClickListener(this);

buttondevide.setOnClickListener(this);

buttonmultiply.setOnClickListener(this);

button7.setOnClickListener(this);

button8.setOnClickListener(this);

button9.setOnClickListener(this);

buttonminus.setOnClickListener(this);

button4.setOnClickListener(this);

button5.setOnClickListener(this);

button6.setOnClickListener(this);

buttonplus.setOnClickListener(this);

button1.setOnClickListener(this);

button2.setOnClickListener(this);

button3.setOnClickListener(this);

button0.setOnClickListener(this);

buttonpoint.setOnClickListener(this);

buttonequal.setOnClickListener(this);

textView1.setOnClickListener(this);

}

@Override

public void onClick(View v) {

String str=textView1.getText().toString();

switch (v.getId()) {

case R.id.button0:

case R.id.button1:

case R.id.button2:

case R.id.button3:

case R.id.button4:

case R.id.button5:

case R.id.button6:

case R.id.button7:

case R.id.button8:

case R.id.button9:

case R.id.buttonpoint:

if(clearflag)

{

clearflag=false;

str="";

textView1.setText("");

}

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

break;

case R.id.buttonplus:

case R.id.buttonminus:

case R.id.buttonmultiply:

case R.id.buttondevide:

if(clearflag)

{

clearflag=false;

str="";

textView1.setText("");

}

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

break;

case R.id.buttondel:

if(clearflag)

{

clearflag=false;

str="";

textView1.setText("");

}

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

{

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

}

break;

case R.id.buttonc:

clearflag=false;

str="";

textView1.setText("");

break;

case R.id.buttonequal:

getResult();

break;

}

}

private void getResult(){

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

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

{

return;

}

if(!exp.contains(" "))

{

return;

}

if(clearflag)

{

clearflag=false;

}

clearflag=true;

double result=0;

String s1=exp.substring(0, exp.indexOf(" "));//第一个操作数

String s2=exp.substring( exp.indexOf(" ")+1,exp.indexOf(" ")+2);//这是符号

String s3=exp.substring( exp.indexOf(" ")+3);//第二个操作数

if(!s1.equals("")&&!s3.equals(""))

{

double d1=Double.parseDouble(s1);

double d2=Double.parseDouble(s3);

if(s2.equals("+"))

{

result=d1+d2;

}

else if(s2.equals("-"))

{

result=d1-d2;

}

else if(s2.equals("×"))

{

result=d1*d2;

}

else if(s2.equals("÷"))

{

if(d2==0)

result=0;

else

result=d1/d2;

}

if(!s1.contains(".")&&!s2.contains(".")&&!s2.equals("÷"))

{

int r=(int) (result);

textView1.setText(r+"");

}

else

textView1.setText(result+"");

}

else if(!s1.equals("")&&s3.equals(""))

{

textView1.setText(exp);

}

else if(s1.equals("")&&!s3.equals(""))

{

double d2=Double.parseDouble(s3);

if(s2.equals("+"))

{

result=0+d2;

}

else if(s2.equals("-"))

{

result=0-d2;

}

else if(s2.equals("×"))

{

result=0*d2;

}

else if(s2.equals("÷"))

{

result=0;

}

if(!s1.contains(".")&&!s2.contains("."))

{

int r=(int) (result);

textView1.setText(r+"");

}

else

textView1.setText(result+"");

}

else

{

textView1.setText("");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值