android多功能计算器 源码,Android计算器源码
屏幕截圖 2020-12-07 174008.png (414.71 KB, 下載次數: 3)
計算器的圖片
2020-12-7 17:40 上傳
jisuanqi.rar
(8.85 MB, 下載次數: 13)
2020-12-7 17:37 上傳
點擊文件名下載附件
Android
下載積分: 黑幣 -5
packagecom.example;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
public classMainActivity extendsAppCompatActivity implementsView.OnClickListener {
privateButton btn_0;
privateButton btn_1;
privateButton btn_2;
privateButton btn_3;
privateButton btn_4;
privateButton btn_5;
privateButton btn_6;
privateButton btn_7;
privateButton btn_8;
privateButton btn_9;
privateButton btn_point;// 小數點privateButton btn_divide;// 除以privateButton btn_multiply;// 乘以privateButton btn_minus;// 減去privateButton btn_pluse;// 加privateButton btn_equal;// 等于privateButton btn_clear;??//清空privateButton btn_del;??//取消privateEditText et_showview;??//輸入框private doubledou= 0;??//接收結果/*** 加一個標識* 需求就是我們運算出結果的時候,再次點擊數字及你選哪個下一次運算,這個時候,輸入框應該自動為空*/private booleanflag;??//清空標識@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private voidinitView() {
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_divide= (Button) findViewById(R.id.btn_divide);// 除以btn_multiply= (Button) findViewById(R.id.btn_multiply);// 乘以btn_minus= (Button) findViewById(R.id.btn_minus);// 減去btn_pluse= (Button) findViewById(R.id.btn_pluse);// 加btn_equal= (Button) findViewById(R.id.btn_equal);// 等于btn_clear= (Button) findViewById(R.id.btn_clear);
btn_del= (Button) findViewById(R.id.btn_del);
et_showview= (EditText) findViewById(R.id.et_showview);
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_divide.setOnClickListener(this);
btn_multiply.setOnClickListener(this);
btn_minus.setOnClickListener(this);
btn_pluse.setOnClickListener(this);
btn_equal.setOnClickListener(this);
btn_clear.setOnClickListener(this);
btn_del.setOnClickListener(this);
}
@Overridepublic voidonClick(View v) {
//我們在這里實現業務邏輯String str = et_showview.getText().toString();
switch(v.getId()) {
//我們點擊數字鍵,輸入框就收到我們的計算數字caseR.id.btn_0:
caseR.id.btn_1:
caseR.id.btn_2:
caseR.id.btn_3:
caseR.id.btn_4:
caseR.id.btn_5:
caseR.id.btn_6:
caseR.id.btn_7:
caseR.id.btn_8:
caseR.id.btn_9:
caseR.id.btn_point:
//再次輸入的時候判斷,把前面的清空,再把點擊的按鈕放在輸入框上if(flag) {
flag= false;
str = "";
et_showview.setText("");
}
//我們只要點擊鍵盤,相應的數字添加在EditText上et_showview.setText(str + ((Button) v).getText());
break;
//運算符也是一樣需要添加的caseR.id.btn_pluse://+caseR.id.btn_minus://-caseR.id.btn_multiply://*caseR.id.btn_divide:/再次輸入的時候判斷,把前面的清空,再把點擊的按鈕放在輸入框上if(flag) {
flag= false;
str = "";
et_showview.setText("");
}
//為了計算方便,我們可以在前后添加空格et_showview.setText(str + " "+ ((Button) v).getText() + " ");
break;
caseR.id.btn_del:
//再次輸入的時候判斷,把前面的清空,再把點擊的按鈕放在輸入框上if(flag) {
flag= false;
str = "";
et_showview.setText("");
} else if(str != null&& !str.equals(" ")) {//判斷,因為我們需要一個個刪,首先確定是不是空或者""//用substring()截取字符長度-1 再設置回去 形成刪一個的效果et_showview.setText(str.substring(0, str.length() - 1));
}
break;
//清除按鈕,直接把輸入框設置成空caseR.id.btn_clear:
flag= false;
str = "";
et_showview.setText(" ");
break;
//計算結果caseR.id.btn_equal:
getResult();
break;
}
}
//等號計算結果private voidgetResult() {
//首先取一下你輸入完后現在輸入框的內容String result = et_showview.getText().toString();
//當我們的輸入框是null或者""時我們不進行操作if(result == null|| result.equals(" ")) {
return;
}
//我們要計算結果,必須知道輸入框是否有操作符,判斷條件就是前后是否在空格,否則不進行操作if(!result.contains(" ")) {
//沒有運算符,所以不用運算return;
}
//當我點擊等號的時候,清空標識設置為true,但是如果之前有的話,設置成falseif(flag) {
flag= false;
return;
}
flag= true;
//如果有空格,我們就截取前后段再獲取運算符進行計算String str1 = result.substring(0, result.indexOf(" "));??//運算符前面字段String op = result.substring(result.indexOf(" ") + 1, result.indexOf(" ") + 2);??//截取運算符String str2 = result.substring(result.indexOf(" ") + 3);??//運算符后面字段//這里我們還是要判斷str1和str2都不是空才if(!str1.equals("") && !str2.equals("")) {??//第一種情況:都不是空doubled1 = Double.parseDouble(str1);
doubled2 = Double.parseDouble(str2);
//開始計算,定義一個double變量接收結果,定義為全局if(op.equals("+")) {??//加dou= d1 + d2;
} else if(op.equals("-")) { //減dou= d1 - d2;
} else if(op.equals("×")) { //乘dou= d1 * d2;
} else if(op.equals("÷")) {??//除//除數為0不計算if(d2 == 0) {
dou= 0;
} else{
dou= d1 / d2;
}
}
//我們之前把他強轉為double類型了,但是如果沒有小數點,我們就是int類型if(!str1.contains(".") && !str2.contains(".") && !op.equals("÷")) {
inti = (int) dou;
et_showview.setText(i + "");
} else{??//如果有小數點et_showview.setText(dou+ "");
}
} else if(!str1.equals("") && str2.equals("")) {??//第二種情況:str2是空//這種情況就不運算了et_showview.setText(result);
} else if(str1.equals("") && !str2.equals("")) {??//第三種情況:str1是空//這種情況我們就需要判斷了,因為此時str1 = 0;doubled3 = Double.parseDouble(str2);
if(op.equals("+")) {??//加dou= 0+ d3;
} else if(op.equals("-")) { //減dou= 0- d3;
} else if(op.equals("×")) { //乘dou= 0;
} else if(op.equals("÷")) {??//除//除數為0不計算dou= 0;
}
//我們之前把他強轉為double類型了,但是如果沒有小數點,我們就是int類型if(!str2.contains(".")) {
inti = (int) dou;
et_showview.setText(i + "");
} else{??//如果有小數點et_showview.setText(dou+ "");
}
} else{??//最后一種情況,他們兩個都是空//我們清空掉et_showview.setText("");
}
}
}
總結
以上是生活随笔為你收集整理的android多功能计算器 源码,Android计算器源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux里c库和gnu c库,Linu
- 下一篇: android 模块不编译错误,Andr