亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不論前面計算方式是啥,我按等號后都是輸出一個0

package com.example.calculatordemo;

?

import android.R.integer;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

?

public class MainActivity extends Activity implements OnClickListener {

? ? Button btn_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_divide;// 除以

? ? Button btn_multiply;// 乘以

? ? Button btn_minus;// 減去

? ? Button btn_pluse;// 加

? ? Button btn_equal;// 等于

?

? ? Button btn_clear;

? ? Button btn_del;

?

? ? EditText et_input;

? ? boolean needclear;

? ? @Override

? ? protected void onCreate(Bundle savedInstanceState) {

? ? ? ? super.onCreate(savedInstanceState);

? ? ? ? setContentView(R.layout.activity_main3);

? ? ? ? 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_multiplay);// 乘以

? ? ? ? btn_minus = (Button) findViewById(R.id.btn_minus);// 減去

? ? ? ? btn_pluse = (Button) findViewById(R.id.btn_plus);// 加

? ? ? ? btn_equal = (Button) findViewById(R.id.btn_equle);// 等于

?

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

? ? ? ? btn_del = (Button) findViewById(R.id.btn_del);

? ? ? ? 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_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);

? ? }

?

? ? @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(needclear&&!str.contains("+")&&!str.contains("-")&&!str.contains("×")&&!str.contains("÷")){

? ? ? ? ? ? ? ? str = "";

? ? ? ? ? ? ? ? et_input.setText("");

? ? ? ? ? ? ? ? needclear = false;

? ? ? ? ? ? }

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

? ? ? ? ? ? break;

? ? ? ? case R.id.btn_plus:

? ? ? ? case R.id.btn_minus:

? ? ? ? case R.id.btn_multiplay:

? ? ? ? case R.id.btn_divide:

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

? ? ? ? ? ? break;

? ? ? ? case R.id.btn_equle:

? ? ? ? ? ? getResult();

? ? ? ? ? ? break;

? ? ? ? case R.id.btn_del:

? ? ? ? ? ? if (str != null && !str.equals("")) {

? ? ? ? ? ? ? ? if(str.substring(str.length()-1,str.length()).equals(" ")){

? ? ? ? ? ? ? ? et_input.setText(str.substring(0, str.length() - 3));

? ? ? ? ? ? ? ? }else{

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

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? break;

? ? ? ? case R.id.btn_clear:

? ? ? ? et_input.setText("");

? ? ? ? ? ? break;

? ? ? ? }

? ? }

?

? ? /**

? ? ?* 獲取計算結果

? ? ?*/

? ? private void getResult() {

? ? ? ? needclear = true;

? ? ? ? boolean pointT = false;

? ? ? ? String exp = et_input.getText().toString();

? ? ? ? double r = 0;

? ? ? ? if(!exp.contains(" ")||exp.substring(exp.length()-1, exp.length()).equals(" ")||exp.contains(" ?")){

? ? ? ? et_input.setText(exp+"");

? ? ? ? ? ? Toast.makeText(MainActivity.this, "計算的數據有錯", 2).show();

? ? ? ? ? ? return;

? ? ? ? }

? ? ? ? String space[] = exp.split(" "); //通過空格獲取每個數據

? ? ? ? Double arg1 = Double.parseDouble(space[0]);//得到第一個數據,并且轉化為Double類型

? ? ? ? if(space[0].contains(".")){

? ? ? ? ? ? pointT = true;

? ? ? ? }

? ? ? ? for (int i = 1;i<space.length;) {

? ? ? ? ? ? if(space[i+1].contains(".")){

? ? ? ? ? ? ? ? pointT = true;

? ? ? ? ? ? }

? ? ? ? ? ? String op = space[i];

? ? ? ? ? ? double arg2 = Double.parseDouble(space[i+1]);

? ? ? ? ? ? if(op.equals("+")){

? ? ? ? ? ? ? ? ?r = arg1 + arg2;

? ? ? ? ? ? }else if(op.equals("-")){

? ? ? ? ? ? ? ? r = arg1 - arg2;

? ? ? ? ? ? }else if(op.equals("×")){

? ? ? ? ? ? ? ? ?r = arg1 * arg2;

? ? ? ? ? ? }else if(op.equals("÷")){

? ? ? ? ? ? ? ? ?if (arg2 == 0)

? ? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? ? ? r=0;

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? ?else

? ? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? ? ? ?r = arg1 / arg2;

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? }?

? ? ? ? ? ? arg1=r;

? ? ? ? ? ? i=i+2;

? ? ? ? }

? ? ? ? if(!pointT){

? ? ? ? ? ? int result = (int)r;

? ? ? ? ? ? et_input.setText(result+"");

? ? ? ? }else{

? ? ? ? et_input.setText(r+"");

? ? ? ? }

? ? }

}

圖形界面我是用表格布局做的,因為不關事吧。。

正在回答

1 回答

package?com.lanou.calculator;

import?android.support.v7.app.AppCompatActivity;
import?android.os.Bundle;
import?android.view.View;
import?android.widget.Button;
import?android.widget.EditText;
import?android.widget.TextView;

public?class?MainActivity?extends?AppCompatActivity?implements?View.OnClickListener?{
????Button?btn_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_del?;
????Button?btn_pluse?;
????Button?btn_minus?;
????Button?btn_multiply?;
????Button?btn_divide?;
????Button?btn_equle?;
????TextView?TVresult?;
????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_del?=?(Button)?findViewById(R.id.btn_del)?;
????????btn_pluse?=?(Button)?findViewById(R.id.btn_add)?;
????????btn_minus?=?(Button)?findViewById(R.id.btn_sub)?;
????????btn_multiply?=?(Button)?findViewById(R.id.btn_mul)?;
????????btn_divide?=?(Button)?findViewById(R.id.btn_div)?;
????????btn_equle?=?(Button)?findViewById(R.id.btn_equal)?;
????????//以上實例化按鈕
????????TVresult?=?(TextView)?findViewById(R.id.TVresult);??//實例化之后的顯示屏

????????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_clear.setOnClickListener(this);
????????btn_del.setOnClickListener(this);
????????btn_pluse.setOnClickListener(this);
????????btn_minus.setOnClickListener(this);
????????btn_multiply.setOnClickListener(this);
????????btn_divide.setOnClickListener(this);
????????btn_equle.setOnClickListener(this);
????????//設置以上按鈕的點擊事件


????}

????@Override
????public?void?onClick(View?v)?{
????????String?str?=?TVresult.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?=""?;
????????????????????TVresult.setText("");
????????????????}
????????????????TVresult.setText(str?+?((Button)v).getText());
????????????????break?;
????????????case?R.id.btn_add:
????????????case?R.id.btn_sub:
????????????case?R.id.btn_mul:
????????????case?R.id.btn_div:
????????????????if?(clear_flag)?{
????????????????????clear_flag?=false?;
????????????????????str?=""?;
????????????????????TVresult.setText("");
????????????????}
???????????????TVresult.setText(str+?"?"?+?((Button)v).getText()+"?");
????????????????break;
????????????case?R.id.btn_del:
????????????????if?(clear_flag)?{
????????????????????clear_flag?=false?;
????????????????????str?=""?;
????????????????????TVresult.setText("");
????????????????}else?if?(str!=null&&!str.equals("")){
????????????????????TVresult.setText(str.substring(0,str.length()-1));
????????????????}
????????????????break;
????????????case?R.id.btn_clear:
????????????????clear_flag?=false?;
????????????????str?=""?;
????????????????TVresult.setText("");
????????????case?R.id.btn_equal:
????????????????getResult();
????????????????break?;

????????}
????}
????/*?單獨的調用運算結果
????*
????*
????*?*/
????private?void?getResult(){
????????String?exp?=?TVresult.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("."))?{
????????????????int?r?=?(int)?result;
????????????????TVresult.setText(r+"");
????????????}else?{
????????????????TVresult.setText(result+"");

????????????}
????????}else?if?(!s1.equals("")&&s2.equals("")){
????????????TVresult.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;
????????????????TVresult.setText(r+"");
????????????}else?{
????????????????TVresult.setText(result+"");
????????????}
????????}else?{
????????????TVresult.setText("");

????????}
????}
}


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android攻城獅的第一門課(入門篇)
  • 參與學習       312492    人
  • 解答問題       4931    個

想快速掌握Android應用開發基礎,選擇學習這門課程就對了。

進入課程

不論前面計算方式是啥,我按等號后都是輸出一個0

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號