自己写了一个很简单的计算器,只能计算两步简单运算,只是想试一试Activity传值于是很鸡肋地将MainActivitiy中获得的两个值以及一个运算符传递到NextActivity在进行运算,并将运算结果再传到MainActivitiy并显示。(虽然并没有什么用-_-|||只是为了用这个而写这个)
public class MainActivity extends Activity implements OnClickListener{
private Button zero,one,two,three,four,five,six,seven,eight,
nine,add,exclude,multiply,divide,zerozero,is;
private EditText edittext1;
/*flagnumber=0时还没有写入数字,flagnumber=1时第一个数字已存在,
flagnumber=2运算符已存在,flagnumber=3时第二个数字已存在
flagnumber=4时已经按下=
本界面传过去的是3个String 两个运算数据 一个运算符
传回本界面的有两个数据 一个boolean标记是否运算成功 另一个是运算结果
运算不成功主要是针对除数为0的情况*/
private int flagnumber;
private String firstnumber,secondnumber,arith;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
setClick();
init();
}
public void findView(){
zero=(Button) findViewById(R.id.button14);
one=(Button) findViewById(R.id.button2);
two=(Button) findViewById(R.id.button3);
three=(Button) findViewById(R.id.button4);
four=(Button) findViewById(R.id.button6);
five=(Button) findViewById(R.id.button7);
six=(Button) findViewById(R.id.button8);
seven=(Button) findViewById(R.id.button10);
eight=(Button) findViewById(R.id.button11);
nine=(Button) findViewById(R.id.button12);
add=(Button) findViewById(R.id.button13);
exclude=(Button) findViewById(R.id.button9);
multiply=(Button) findViewById(R.id.button5);
divide=(Button) findViewById(R.id.button1);
zerozero=(Button) findViewById(R.id.button15);
is=(Button) findViewById(R.id.button16);
edittext1=(EditText) findViewById(R.id.editText1);
}
public void setClick(){
zero.setOnClickListener(this);
one.setOnClickListener(this);
two.setOnClickListener(this);
three.setOnClickListener(this);
four.setOnClickListener(this);
five.setOnClickListener(this);
six.setOnClickListener(this);
seven.setOnClickListener(this);
eight.setOnClickListener(this);
nine.setOnClickListener(this);
add.setOnClickListener(this);
exclude.setOnClickListener(this);
multiply.setOnClickListener(this);
divide.setOnClickListener(this);
zerozero.setOnClickListener(this);
is.setOnClickListener(this);
}
public void init(){
flagnumber=0;
firstnumber="";
secondnumber="";
arith="";
edittext1.setText("");
}
@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
switch (v.getId()) {
//除号
case R.id.button1:
if(flagnumber==1){
firstnumber=edittext1.getText().toString();
arith="/";
flagnumber=2;
edittext1.setText(edittext1.getText().toString()+"/");
}
else{
Toast.makeText(this, "输入有误!", 1).show();
init();
}
break;
//1
case R.id.button2:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"1");
break;
//2
case R.id.button3:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"2");
break;
//3
case R.id.button4:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"3");
break;
//*
case R.id.button5:
if(flagnumber==1){
firstnumber=edittext1.getText().toString();
arith="*";
flagnumber=2;
edittext1.setText(edittext1.getText().toString()+"*");
}
else{
Toast.makeText(this, "输入有误!", 1).show();
init();
}
break;
//4
case R.id.button6:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"4");
break;
//5
case R.id.button7:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"5");
break;
//6
case R.id.button8:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"6");
break;
//-
case R.id.button9:
if(flagnumber==1){
firstnumber=edittext1.getText().toString();
arith="-";
flagnumber=2;
edittext1.setText(edittext1.getText().toString()+"-");
}
else{
Toast.makeText(this, "输入有误!", 1).show();
init();
}
break;
//7
case R.id.button10:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"7");
break;
//8
case R.id.button11:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"8");
break;
//9
case R.id.button12:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"9");
break;
//+
case R.id.button13:
if(flagnumber==1){
firstnumber=edittext1.getText().toString();
arith="+";
flagnumber=2;
edittext1.setText(edittext1.getText().toString()+"+");
}
else{
Toast.makeText(this, "输入有误!", 1).show();
init();
}
break;
//0
case R.id.button14:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"0");
break;
//00
case R.id.button15:
if(flagnumber==0){
flagnumber=1;
}
if(flagnumber==2){
flagnumber=3;
}
if(flagnumber==4){
init();
flagnumber=1;
}
edittext1.setText(edittext1.getText().toString()+"00");
break;
//=
case R.id.button16:
if(flagnumber==3){
flagnumber=4;
String temp=edittext1.getText().toString();
secondnumber=temp.substring(firstnumber.length()+1);
edittext1.setText(edittext1.getText().toString()+"=");
//calcu(firstnumber,secondnumber,arith);
Intent intent=new Intent(MainActivity.this,NextActivity.class);
Bundle bundle1=new Bundle();
bundle1.putString("firstnumber", firstnumber);
bundle1.putString("secondnumber", secondnumber);
bundle1.putString("arith", arith);
intent.putExtras(bundle1);
startActivityForResult(intent, 100);
}
break;
default:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100&&resultCode==RESULT_OK){
Bundle bundle3=data.getExtras();
Boolean haveresult=bundle3.getBoolean("haveresult");
if(haveresult){
float result=bundle3.getFloat("result");
edittext1.setText(edittext1.getText().toString()+""+result);
}
else{
Toast.makeText(this, "除数不能为0!", 1).show();
init();
}
}
}
}
public class NextActivity extends Activity {
float result=0.0f;
boolean haveresult=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
Intent intent =getIntent();
Bundle bundle1=intent.getExtras();
String firstNumber=bundle1.getString("firstnumber");
String secondNumber=bundle1.getString("secondnumber");
String arith=bundle1.getString("arith");
calcu(firstNumber, secondNumber, arith);
Bundle bundle2=new Bundle();
bundle2.putBoolean("haveresult", haveresult);
bundle2.putFloat("result", result);
intent.putExtras(bundle2);
setResult(RESULT_OK, intent);
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.next, 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);
}
private void calcu(String firstnumber2, String secondnumber2, String arith2) {
float a1=Float.parseFloat(firstnumber2);
float a2=Float.parseFloat(secondnumber2);
switch (arith2) {
case "+":
//edittext1.setText(edittext1.getText().toString()+""+(a1+a2));
haveresult=true;
result=a1+a2;
break;
case "-":
//edittext1.setText(edittext1.getText().toString()+""+(a1-a2));
haveresult=true;
result=a1-a2;
break;
case "/":
if(a2==0.0f){
haveresult=false;
}
else{
// edittext1.setText(edittext1.getText().toString()+""+(a1/a2));
haveresult=true;
result=a1/a2;
}
break;
case "*":
haveresult=true;
result=a1*a2;
default:
break;
}
}
}