如何纳入EDITTEXT&放点操作;退格为Android应用程序的计算器 [英] how to include dot operator in Edittext & Backspace for android calculator application

查看:149
本文介绍了如何纳入EDITTEXT&放点操作;退格为Android应用程序的计算器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是初学java,我决定做简单的安卓计算器当我运行此code退格不工作,让我帮忙解决this.what我错了。
我还需要帮助如何在的EditText 添加点运算符,我怎么能写出code执行浮点加法。

 包com.tools.calculator;
进口android.R.string;
进口android.os.Bundle;
进口android.app.Activity;
进口android.text.Editable;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.TextView;公共类MainActivity延伸活动{     公共字符串str =;
     字符运算=Q;
     INT I,NUM,numtemp;        的EditText showResult;    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        showResult =(EditText上)findViewById(R.id.editText1);
        }
         公共无效一(视图v){
           插入(1);
              }
           公共无效两(视图v){
           插入(2);
            }
          公共无效三(视图V){
           插入(3);
            }
          公共无效四(视图v){
           插入(4);
            }
          公共无效五(视图v){
           (5)接入;
            }
          公共无效六(视图v){
           插入(6);
          }
          公共无效七(视图v){
           插入(7);
            }
          公共无效八(视图v){
           插入(8);
            }
          公共无效九(视图v){
           插入(9);
           }
          公共无效零(视图v){
              (0)接入;
          }
          公共无效点(视图V)
    {
            / * ---- FOR ********需要帮助包括点操作***** ------ * /
          }
          公共无效加(视图v){
           执行();
           运='+';
           showResult.setText();
          }
          公共无效减号(视图v){
            执行();
            运=' - ';
            showResult.setText();          }
          公共无效鸿沟(视图v){
           执行();
           运='/';
           showResult.setText();
          }
          公共无效乘法(视图v){
           执行();
           运='*';
           showResult.setText();
          }
          公共无效相等(视图v){
    //计算数
           计算();          }
          公共无效退格(视图V)
    {/ * --------------------- BackSpace键功能------------------- * /
              showResult.setText(STR);
              。字符串str = showResult.getText()的toString();
            如果(str.length()→1){                海峡= str.substring(0,str.length() - 1);
                showResult.setText(STR);
                }否则如果(str.length()< = 1){
                    showResult.setText();
           / * --------------------- BackSpace键功能------------------- * /
                    }
             }
          公共无效CLR(视图v){
              重置();
          }
             私人无效复位(){
     / * ---------------------复位的EditText ------------------- * /
          海峡=;
          运=Q;
          NUM = 0;
          numtemp = 0;
          showResult.setText();
     / * ---------------------复位的EditText ------------------- * /
        }          私人无效插入(诠释J){
                //通过点击按钮插入值
                   海峡= STR + Integer.toString(J);
                   NUM = Integer.valueOf(STR).intValue();
                   showResult.setText(STR);
               }          私人无效执行(){
                //移动变量临时寄存器
                海峡=;
                numtemp = NUM​​;
          }
          私人无效计算(){
                //计算过程
                如果(OP =='+')
                 numtemp = numtemp + NUM;
                否则,如果(OP ==' - ')
                 numtemp = numtemp-NUM;
                否则,如果(OP =='/')
                 numtemp = numtemp / NUM;
                否则如果(运=='*')
                 numtemp = numtemp * NUM;
                showResult.setText(+ numtemp);
                海峡=;
               }
公共布尔onCreateOptionsMenu(菜单菜单){
    //充气菜单;如果是present这增加了项目操作栏。
    。getMenuInflater()膨胀(R.menu.main,菜单);
    返回true;
}
}

布局文件

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:paddingBottom会=@扪/ activity_vertical_margin
    机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
    机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
    机器人:paddingTop =@扪/ activity_vertical_margin
    工具:上下文=。MainActivity
    机器人:背景=#333333>    <按钮
        机器人:ID =@ + ID /按钮2
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID /按钮1
        机器人:layout_toRightOf =@ + ID /按钮1
        机器人:文字=@字符串/零
        安卓的onClick =零/>    <按钮
        机器人:ID =@ + ID /按钮3
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBaseline =@ + ID /按钮2
        机器人:layout_alignBottom =@ + ID /按钮2
        机器人:layout_toRightOf =@ + ID /按钮2
        机器人:文字=@字符串/平等
        安卓的onClick =等于/>    <按钮
        机器人:ID =@ + ID / button5
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBaseline =@ + ID /将Button4
        机器人:layout_alignBottom =@ + ID /将Button4
        机器人:layout_alignLeft =@ + ID /按钮2
        机器人:文字=@字符串/两个
        安卓的onClick =两节/>    <按钮
        机器人:ID =@ + ID / button6
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / button5
        机器人:layout_toRightOf =@ + ID / button5
        机器人:文字=@字符串/三
        安卓的onClick =三/>    <按钮
        机器人:ID =@ + ID / button7
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignLeft =@ + ID /将Button4
        机器人:layout_centerVertical =真
        机器人:文字=@字符串/四
        安卓的onClick =四个一/>    <按钮
        机器人:ID =@ + ID /按钮8
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / button7
        机器人:layout_alignLeft =@ + ID / button5
        机器人:文字=@字符串/五
        安卓的onClick =十二五/>    <按钮
        机器人:ID =@ + ID /按钮9
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_centerVertical =真
        机器人:layout_toRightOf =@ + ID /按钮8
        机器人:文字=@字符串/六个一
        安卓的onClick =六个一/>    <按钮
        机器人:ID =@ + ID / button10
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_above =@ + ID / button7
        机器人:layout_alignLeft =@ + ID / button7
        机器人:layout_marginBottom =14dp
        机器人:文字=@字符串/七
        安卓的onClick =七/>    <按钮
        机器人:ID =@ + ID / button11
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / button10
        机器人:layout_alignLeft =@ + ID /按钮8
        机器人:文字=@字符串/八
        安卓的onClick =八/>    <按钮
        机器人:ID =@ + ID / button12
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / button11
        机器人:layout_toRightOf =@ + ID / button11
        机器人:文字=@字符串/九
        安卓的onClick =九/>    <按钮
        机器人:ID =@ + ID /将Button4
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_below =@ + ID / button7
        机器人:layout_marginTop =15dp
        机器人:layout_toLeftOf =@ + ID / button5
        机器人:文字=@字符串/一
        安卓的onClick =一/>    <按钮
        机器人:ID =@ + ID / button17
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_above =@ + ID / button12
        机器人:layout_alignParentRight =真
        机器人:layout_marginBottom =18dp
        机器人:文字=@字符串/ CLR
        安卓的onClick =CLR/>    <按钮
        机器人:ID =@ + ID / button13
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBaseline =@ + ID / button12
        机器人:layout_alignBottom =@ + ID / button12
        机器人:layout_alignParentRight =真
        机器人:文字=@字符串/加
        安卓的onClick =加/>    <按钮
        机器人:ID =@ + ID / button14
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBaseline =@ + ID /按钮9
        机器人:layout_alignBottom =@ + ID /按钮9
        机器人:layout_alignLeft =@ + ID / button13
        机器人:文字=@字符串/子
        安卓的onClick =减/>    <按钮
        机器人:ID =@ + ID / button15
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / button6
        机器人:layout_alignParentRight =真
        机器人:文字=@字符串/ MUL
        安卓的onClick =正片叠底/>    <按钮
        机器人:ID =@ + ID / button16
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBaseline =@ + ID /按钮3
        机器人:layout_alignBottom =@ + ID /按钮3
        机器人:layout_alignLeft =@ + ID / button15
        机器人:文字=@字符串/格
        安卓的onClick =鸿沟/>    <的EditText
        机器人:ID =@ + ID / editText1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / button17
        机器人:layout_alignLeft =@ + ID / button10
        机器人:layout_alignTop =@ + ID / button17
        机器人:背景=#FFFFFF
        机器人:EMS =10
        安卓的inputType =号/>    <按钮
        机器人:ID =@ + ID /按钮1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentLeft =真
        机器人:layout_below =@ + ID / button5
        机器人:layout_marginLeft =18dp
        机器人:layout_marginTop =20dp
        机器人:文字=@字符串/点
        安卓的onClick =点/>    <按钮
        机器人:ID =@ + ID / button18
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_above =@ + ID / button17
        机器人:layout_alignLeft =@ + ID / button17
        机器人:layout_marginBottom =10dp
        机器人:文字=@字符串/退格/>< / RelativeLayout的>

XML文件###

 <?XML版本=1.0编码=UTF-8&GT?;
<资源>    <字符串名称=APP_NAME>计算器和LT; /串>
    <字符串名称=action_settings>设置< /串>
    <字符串名称=参考hello world>< /串>
    <字符串名称=点方式>< /串>
    <字符串名称=一> 1 LT; /串>
    <字符串名称=两化> 2'; /串>
    <字符串名称=三>第3版; /串>
    <字符串名称=四个一> 4℃; /串>
    <字符串名称=十二五> 5℃/串>
    <字符串名称=六个一> 6≤/串>
    <字符串名称=七> 7 LT; /串>
    <字符串名称=八> 8示/串>
    <字符串名称=九> 9< /串>
    <字符串名称=零> 0℃; /串>
    <字符串名称=添加&GT + LT; /串>
    <字符串名称=亚健康> - < /串>
    <字符串名称=MUL> * LT; /串>
    <字符串名称=格> /< /串>
    <字符串名称=等于> = LT; /串>
    <字符串名称=退格>&放大器; LT; - < /串>
    <字符串名称=CLR>&CLR LT; /串>
< /资源>


解决方案

您code是可怕的(每一把手的方法?),看着你的插入方法,你应该做一些修改。

 私人无效插入(诠释J){
    //通过点击按钮插入值
    海峡= STR + Integer.toString(J);
    NUM = Integer.valueOf(STR).intValue();
    showResult.setText(STR);
}

首先:


  • 您应该使用双。* <​​/ code>方法,因为整数不能有浮动值。

  • 我没有看到任何code这做数学题,所以你应该做的编辑。

然后,使方法,你可能只是做

 私人无效插入(){
    //通过点击按钮插入值
    海峡= STR +0;
    NUM = Double.valueOf(STR);
    showResult.setText(STR);
}

这是你应该做的支持点。

无论如何,你可以得到删除 .intValue() Integer.valueOf(STR).intValue()

I'm a java beginner,I decided to made simple android calculator When i run this code Bksp doesn't work,let me help to solve this.what i'm wrong. i also need a help how to adding a dot operator in EditText and how can i write the code to perform floating addition.

package com.tools.calculator;
import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

     public String str ="";
     Character op = 'q';
     int i,num,numtemp;

        EditText showResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        showResult = (EditText) findViewById(R.id.editText1);
        }
         public void one(View v){
           insert(1);
              }
           public void two(View v){
           insert(2);
            }
          public void three(View v){
           insert(3);
            }
          public void four(View v){
           insert(4);
            }
          public void five(View v){
           insert(5);
            }
          public void six(View v){
           insert(6);
          }
          public void seven(View v){
           insert(7);
            }
          public void eight(View v){
           insert(8);
            }
          public void nine(View v){
           insert(9);
           }
          public void zero(View v){
              insert(0);
          }
          public void dot(View v)
    {
            /*----******** NEED HELP FOR INCLUDE THE DOT OPERATOR*****------*/   
          }
          public void plus(View v){
           perform();
           op = '+';
           showResult.setText("");
          }
          public void minus(View v){
            perform();
            op = '-';
            showResult.setText("");

          }
          public void divide(View v){       
           perform();
           op = '/';
           showResult.setText("");
          }
          public void multiply(View v){
           perform();
           op = '*';
           showResult.setText("");
          }
          public void equal(View v){
    //Calculate the numbers
           calculate();

          }
          public void Bksp(View v)
    {     /*  --------------------- BackSpace function-------------------  */
              showResult.setText(str);
              String str = showResult.getText().toString();
            if(str.length()>1){

                str = str.substring(0, str.length() - 1);
                showResult.setText(str);
                }else if(str.length()<=1){
                    showResult.setText("");
           /*  --------------------- BackSpace function-------------------  */
                    }
             }
          public void CLR(View v){
              reset();
          }
             private void reset() {
     /*  --------------------- Reset the EditText-------------------  */
          str ="";
          op ='q';
          num = 0;
          numtemp = 0;
          showResult.setText("");
     /*  --------------------- Reset the EditText-------------------  */
        }

          private void insert(int j) {
                //Insert the  values by clicking button
                   str = str+Integer.toString(j);
                   num = Integer.valueOf(str).intValue();
                   showResult.setText(str);


               }

          private void perform() {
                // move the variable to temporary register
                str = "";
                numtemp = num;
          }
          private void calculate() {
                // Calculation process
                if(op == '+')
                 numtemp = numtemp+num;
                else if(op == '-')
                 numtemp = numtemp-num;
                else if(op == '/')
                 numtemp = numtemp/num;
                else if(op == '*')
                 numtemp = numtemp*num;
                showResult.setText(""+numtemp);
                str = "";
               }
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;
}
}

LAYOUT FILE

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" 
    android:background="#333333">

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button1"
        android:layout_toRightOf="@+id/button1"
        android:text="@string/zero"
        android:onClick="zero" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button2"
        android:layout_alignBottom="@+id/button2"
        android:layout_toRightOf="@+id/button2"
        android:text="@string/equal"
        android:onClick="equal" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button4"
        android:layout_alignBottom="@+id/button4"
        android:layout_alignLeft="@+id/button2"
        android:text="@string/two"
        android:onClick="two" />

    <Button
        android:id="@+id/button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button5"
        android:layout_toRightOf="@+id/button5"
        android:text="@string/three"
        android:onClick="three" />

    <Button
        android:id="@+id/button7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button4"
        android:layout_centerVertical="true"
        android:text="@string/four"
        android:onClick="four" />

    <Button
        android:id="@+id/button8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button7"
        android:layout_alignLeft="@+id/button5"
        android:text="@string/five" 
        android:onClick="five"/>

    <Button
        android:id="@+id/button9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/button8"
        android:text="@string/six"
        android:onClick="six" />

    <Button
        android:id="@+id/button10"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button7"
        android:layout_alignLeft="@+id/button7"
        android:layout_marginBottom="14dp"
        android:text="@string/seven" 
        android:onClick="seven"/>

    <Button
        android:id="@+id/button11"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button10"
        android:layout_alignLeft="@+id/button8"
        android:text="@string/eight" 
        android:onClick="eight"/>

    <Button
        android:id="@+id/button12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button11"
        android:layout_toRightOf="@+id/button11"
        android:text="@string/nine"
        android:onClick="nine" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button7"
        android:layout_marginTop="15dp"
        android:layout_toLeftOf="@+id/button5"
        android:text="@string/one"
        android:onClick="one" />

    <Button
        android:id="@+id/button17"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button12"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="18dp"
        android:text="@string/CLR" 
        android:onClick="CLR"/>

    <Button
        android:id="@+id/button13"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button12"
        android:layout_alignBottom="@+id/button12"
        android:layout_alignParentRight="true"
        android:text="@string/add"
        android:onClick="plus" />

    <Button
        android:id="@+id/button14"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button9"
        android:layout_alignBottom="@+id/button9"
        android:layout_alignLeft="@+id/button13"
        android:text="@string/sub"
        android:onClick="minus" />

    <Button
        android:id="@+id/button15"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button6"
        android:layout_alignParentRight="true"
        android:text="@string/mul"
        android:onClick="multiply" />

    <Button
        android:id="@+id/button16"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button3"
        android:layout_alignBottom="@+id/button3"
        android:layout_alignLeft="@+id/button15"
        android:text="@string/div"
        android:onClick="divide" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button17"
        android:layout_alignLeft="@+id/button10"
        android:layout_alignTop="@+id/button17"
        android:background="#ffffff"
        android:ems="10"
        android:inputType="number" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button5"
        android:layout_marginLeft="18dp"
        android:layout_marginTop="20dp"
        android:text="@string/dot"
        android:onClick="dot" />

    <Button
        android:id="@+id/button18"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button17"
        android:layout_alignLeft="@+id/button17"
        android:layout_marginBottom="10dp"
        android:text="@string/Bksp" />

</RelativeLayout>

XML FILE ###

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Calculator</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world"></string>
    <string name="dot">.</string>
    <string name="one">1</string>
    <string name="two">2</string>
    <string name="three">3</string>
    <string name="four">4</string>
    <string name="five">5</string>
    <string name="six">6</string>
    <string name="seven">7</string>
    <string name="eight">8</string>
    <string name="nine">9</string>
    <string name="zero">0</string>
    <string name="add">+</string>
    <string name="sub">-</string>
    <string name="mul">*</string>
    <string name="div">/</string>
    <string name="equal">=</string>
    <string name="Bksp">&lt;--</string>
    <string name="CLR">CLR</string>


</resources>

解决方案

Your code is horrible (one method per number?), looking your insert method you should do some edits.

private void insert(int j) {
    //Insert the  values by clicking button
    str = str+Integer.toString(j);
    num = Integer.valueOf(str).intValue();
    showResult.setText(str);
}

First:

  • You should use Double.* methods because Integer cannot have float values.
  • I don't see any code which do the math so you should do the edits.

Then, to make the dot method you could just do it

private void insert() {
    //Insert the  values by clicking button
    str = str+".0";
    num = Double.valueOf(str);
    showResult.setText(str);
}

It's what you should do to support dot.

Anyway, you can get remove .intValue() from Integer.valueOf(str).intValue()

这篇关于如何纳入EDITTEXT&放点操作;退格为Android应用程序的计算器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆