您的位置:首页 > 其它

终于做了第一个可以用的~~~计算器 为自己鼓掌

2016-03-07 20:55 211 查看
很简单 老规矩先把代码贴上来

package com.example.admin.test_0306_2;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements View.OnClickListener{
private Button button_0;
private Button button_1;
private Button button_2;
private Button button_3;
private Button button_4;
private Button button_5;
private Button button_6;
private Button button_7;
private Button button_8;
private Button button_9;
private Button button_c;
private Button button_del;
private Button button_jia;
private Button button_jian;
private Button button_cheng;
private Button button_chu;
private Button button_equal;
private Button button_point;
private EditText editText;
Boolean flag_clear;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button_0= (Button) findViewById(R.id.button_0);
button_1= (Button) findViewById(R.id.button_1);
button_2= (Button) findViewById(R.id.button_2);
button_3= (Button) findViewById(R.id.button_3);
button_4= (Button) findViewById(R.id.button_4);
button_5= (Button) findViewById(R.id.button_5);
button_6= (Button) findViewById(R.id.button_6);
button_7= (Button) findViewById(R.id.button_7);
button_8= (Button) findViewById(R.id.button_8);
button_9= (Button) findViewById(R.id.button_9);
button_c= (Button) findViewById(R.id.button_c);
button_del= (Button) findViewById(R.id.button_del);
button_cheng= (Button) findViewById(R.id.button_cheng);
button_chu= (Button) findViewById(R.id.button_chu);
button_jia= (Button) findViewById(R.id.button_jia);
button_jian= (Button) findViewById(R.id.button_jian);
button_equal= (Button) findViewById(R.id.button_equal);
button_point= (Button) findViewById(R.id.button_point);
editText= (EditText) findViewById(R.id.input);
flag_clear=false;

button_0.setOnClickListener(this);
button_1.setOnClickListener(this);
button_2.setOnClickListener(this);
button_3.setOnClickListener(this);
button_4.setOnClickListener(this);
button_5.setOnClickListener(this);
button_6.setOnClickListener(this);
button_7.setOnClickListener(this);
button_8.setOnClickListener(this);
button_9.setOnClickListener(this);
button_c.setOnClickListener(this);
button_del.setOnClickListener(this);
button_cheng.setOnClickListener(this);
button_chu.setOnClickListener(this);
button_jia.setOnClickListener(this);
button_jian.setOnClickListener(this);
button_equal.setOnClickListener(this);
button_point.setOnClickListener(this);

}

@Override
public void onClick(View v) {
String str=editText.getText().toString();
switch (v.getId()){
case R.id.button_0:
case R.id.button_1:
case R.id.button_2:
case R.id.button_3:
case R.id.button_4:
case R.id.button_5:
case R.id.button_6:
case R.id.button_7:
case R.id.button_8:
case R.id.button_9:
case R.id.button_point:
if(flag_clear){
flag_clear=false;
str="";
editText.setText("");
}
editText.setText(str+((Button)v).getText());
break;
case R.id.button_jia:
case R.id.button_jian:
case R.id.button_cheng:
case R.id.button_chu:
if(flag_clear){
flag_clear=false;
str="";
editText.setText("");
}
editText.setText(str+" "+((Button)v).getText()+" ");
break;
case R.id.button_c:
flag_clear=false;
str="";
editText.setText("");
break;
case R.id.button_del:
if(flag_clear){
flag_clear=false;
str="";
editText.setText("");
}else if(str!=null&&!str.equals("")){
editText.setText(str.substring(0,str.length()-1));
break;
}
case R.id.button_equal:
getresult();
break;
}

}
private void getresult(){
String exp=editText.getText().toString();
if(exp==null||exp.equals("")){
return;
}
if(!exp.contains(" ")){
return;
}
if(flag_clear){
flag_clear=false;
return;
}
flag_clear=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;
editText.setText(r+"");
}else{
editText.setText(result+"");
}
}else if (!s1.equals("")&&s2.equals("")){
editText.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("÷")){
if(d2==0){
result=0;
}
}
if(!s2.contains(".")){
int r=(int)result;
editText.setText(r+"");
}else{
editText.setText(result+"");
}
}else{
editText.setText("");
}

}
}
其中有几个知识点 记一下

.contains(" ")

是指对象中包含了空格

String s1=exp.substring(0,exp.indexOf(" "));
String op=exp.substring(exp.indexOf(" ") + 1, exp.indexOf(" ") + 2);
String s2=exp.substring(exp.indexOf(" ") + 3);


这个.subsyring(a,b)是指去字符串的第几个到第几个 indexOf()是获取到第一个“ ”

Double.parseDouble(s1)

强制转换啦

确实感觉自己java底子很差 所以都记下来 不能嫌烦燥

当然布局代码昨天就已经贴出来了 今天按照自己iphone的布局稍微修改了一下 确实好看多了 呼呼呼

毕竟是做的第一个可以用的 成就感爆棚呀
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: