android studio计算器应用程序

时间:2016-04-21 13:07:46

标签: android android-studio

我一直在研究计算器应用程序,代码正在运行bar等于没有显示任何结果的按钮。我不知道我在哪里出错了code.my计算器是一个简单的只需要加减。

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/linearLayout">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="2.16"
    android:id="@+id/linear1">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="0"
        android:inputType="numberDecimal"
        android:textSize="30pt"
        android:id="@+id/noOne"/>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_below="@+id/linear1"
    android:orientation="horizontal"
    android:id="@+id/linear2">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="1"
        android:textSize="25pt"
        android:textColor="#000000"
        android:background="#3090C7"
        android:layout_marginRight="5dp"
        android:id="@+id/button1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="2"
        android:textSize="25pt"
        android:textColor="#000000"
        android:background="#41A317"
        android:layout_marginRight="5dp"
        android:id="@+id/button2"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="3"
        android:textSize="25pt"
        android:textColor="#000000"
        android:background="#FFFF00"
        android:layout_marginRight="5dp"
        android:id="@+id/button3" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="+"
        android:textSize="25pt"
        android:id="@+id/buttonplus"/>

  </LinearLayout>

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_below="@+id/linear2"
    android:orientation="horizontal"
    android:id="@+id/linear3">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="4"
        android:textSize="25pt"
        android:id="@+id/button4"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="5"
        android:textSize="25pt"
        android:id="@+id/button5"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="6"
        android:textSize="25pt"
        android:id="@+id/button6" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="-"
        android:textSize="25pt"
        android:id="@+id/buttonminus"/>

   </LinearLayout>

  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_below="@+id/linear3"
    android:orientation="horizontal"
    android:id="@+id/linear4">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="7"
        android:textSize="25pt"
        android:id="@+id/button7"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="8"
        android:textSize="25pt"
        android:id="@+id/button8"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="9"
        android:textSize="25pt"
        android:id="@+id/button9" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="."
        android:textSize="25pt"
        android:id="@+id/buttondecimal"/>
   </LinearLayout>

   <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_below="@+id/linear4"
    android:orientation="horizontal"
    android:id="@+id/linear5">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.05"
        android:text="0"
        android:textSize="25pt"
        android:id="@+id/button0" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.88"
        android:text="="
        android:textSize="25pt"
        android:id="@+id/buttonequal"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.05"
        android:text="AC"
        android:textSize="25pt"
        android:id="@+id/buttonAC"/>

  </LinearLayout>

   <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18pt"
        android:id="@+id/results"/>
   </LinearLayout>

   </LinearLayout>

代码:

package example.uuj.studentbudget;

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


public class MainActivity extends Activity {

EditText noOne;
Button buttonplus, buttonminus, buttondecimal, buttonequal, buttonAC;
Button button1, button2, button3, button4, button5, button6, button7,               
button8, button9, button0;
TextView results;
Double double1;
Double double2;
Boolean plus, minus;
int val1, val2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    //declaring edit text

    noOne = (EditText) findViewById(R.id.noOne);

    //declaring all button number
    button0 = (Button) findViewById(R.id.button0);
    button1 = (Button) findViewById(R.id.button1);
    button2 = (Button) findViewById(R.id.button2);
    button3 = (Button) findViewById(R.id.button3);
    button4 = (Button) findViewById(R.id.button4);
    button5 = (Button) findViewById(R.id.button5);
    button6 = (Button) findViewById(R.id.button6);
    button7 = (Button) findViewById(R.id.button7);
    button8 = (Button) findViewById(R.id.button8);
    button9 = (Button) findViewById(R.id.button9);

    //declaring all button operations
    buttonplus = (Button) findViewById(R.id.buttonplus);
    buttonminus = (Button) findViewById(R.id.buttonminus);
    buttondecimal = (Button) findViewById(R.id.buttondecimal);
    buttonequal = (Button) findViewById(R.id.buttonequal);
    buttonAC = (Button) findViewById(R.id.buttonAC);

    results = (TextView) findViewById(R.id.results);


    //set up all event handlers for numbered buttons

    //Button0

    button0.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView)  
 findViewById(R.id.noOne);
                                       results.append("0");
                                   }
                               }
    );

    //Button1
    button1.setOnClickListener(new View.OnClickListener()
                                       //interface
                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView) 
 findViewById(R.id.noOne);
                                       results.append("1");
                                   }
                               }
    );

    //Button2
    button2.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView) 

 findViewById(R.id.noOne);
                                       results.append("2");
                                   }
                               }
    );

    //Button3
    button3.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView) 
  findViewById(R.id.noOne);
                                       results.append("3");
                                   }
                               }
    );

    //Button4
    button4.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView) 
  findViewById(R.id.noOne);
                                       results.append("4");
                                   }
                               }
    );

    //Button5
    button5.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView)  
 findViewById(R.id.noOne);
                                       results.append("5");
                                   }
                               }
    );
    //Button6
    button6.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView) 
  findViewById(R.id.noOne);
                                       results.append("6");
                                   }
                               }
    );

    //Button7
    button7.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView) 
findViewById(R.id.noOne);
                                       results.append("7");
                                   }
                               }
    );

    //Button8
    button8.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView) 
  findViewById(R.id.noOne);
                                       results.append("8");
                                   }
                               }
    );

    //Button9
    button9.setOnClickListener(new View.OnClickListener()
                                       //interface

                               {
                                   public void onClick(View v) {
                                       TextView results = (TextView) 
 findViewById(R.id.noOne);
                                       results.append("9");
                                   }
                               }
    );

    //Button to clear all data from the screen
    buttonAC.setOnClickListener(new View.OnClickListener()
                                        //interface

                                {
                                    public void onClick(View v) {
                                        TextView results = (TextView) 
   findViewById(R.id.noOne);
                                        results.setText("");
                                    }
                                }
    );

    //Buttondecimal
    buttondecimal.setOnClickListener(new View.OnClickListener()
                                             //interface

                                     {
                                         public void onClick(View v) {
                                             TextView results = (TextView) 
  findViewById(R.id.noOne);
                                             results.append(".");
                                         }
                                     }
    );

    //plus button
    buttonplus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            val1 = Integer.parseInt(noOne.getText() + "");
            plus = true;
            noOne.setText(null);
        }
    });

    //minus button
    buttonminus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            val1 = Integer.parseInt(noOne.getText() + "");
            minus = true;
            noOne.setText(null);
        }
    });

    buttonequal.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            val2 = Integer.parseInt(noOne.getText() + "");

            if (plus == true) {
                noOne.setText(val1 + val2 + "");
                plus = false;
            }
            if (minus == true) {
                noOne.setText(val1 + val2 + "");
                minus = false;
            }
        }

    });
}
}

3 个答案:

答案 0 :(得分:1)

我想首先指出你所犯的一些错误。

  • 您已经给出了一个小数点按钮,但它从未在程序内部处理过。这会让你的应用程序崩溃。
  • 您必须改进更好的整体设计。在一次操作之后,您不会清除edittext。

现在回答您的问题 -

  

..没有显示任何结果的等号按钮..

  • 每个按钮 #!/bin/bash echo "" echo "Content-type: text/html" echo "<html><head><title>Light on" echo "</title>" echo "</head><body>" echo "$(bash /home/pi/streaming.sh) #this calls the shell script" echo "</body></html>" 都有问题。 noOne是onClickListener(),但您将其转换为EditText。每隔TextView -

    更改一次
    setOnClickListener
  • 变量button0.setOnClickListener(new View.OnClickListener() //interface { public void onClick(View v) { EditText results = (EditText) findViewById(R.id.noOne); results.append("0"); } } ); plusminus而不是boolean。这样做 -

    Boolean

现在你的代码可以正常运行以解决相同的问题。但我不得不说这个“这个程序仍然需要改进”。

如果它能解决您的问题,请接受此答案。

答案 1 :(得分:0)

目前无法发表评论,但您是否有可能同时点击“添加”和“减”。它们的设置方式并不相互排斥,因此它们可能都是通过并且noOne正在更新为原始的val2,因为您正在添加然后减去相同的val1数字?

您可能希望将Operation变量设置为Operation.PLUS或Operation.MINUS,然后在您的equals处理程序中切换值,这样您一次只能执行一个操作。如果你之后添加其他操作,如果有人在击中相等之前同时击中+和 - 之后的数字,你就不会遇到这个问题。

答案 2 :(得分:0)

在声明布尔加号和减号时,将它们初始化为false,因为它会在'buttonequal' onClickListener中给出空指针异常。

Boolean plus = false, minus = false;

此代码中还有一个问题,您已经在时间中添加了数字,就像在“减号”逻辑中一样,您正在添加数字而不是减去数字。

buttonequal.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            val2 = Integer.parseInt(noOne.getText() + "");

            if (plus == true) {
                noOne.setText(val1 + val2 + "");
                plus = false;
            }
            if (minus == true) {
                //noOne.setText(val1 + val2 + ""); changed this to minus
                noOne.setText(val1 - val2 + "");
                minus = false;
            }
        }

    });

进行此更改后,您的代码应该可以正常工作。