我一直在研究计算器应用程序,代码正在运行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;
}
}
});
}
}
答案 0 :(得分:1)
我想首先指出你所犯的一些错误。
现在回答您的问题 -
..没有显示任何结果的等号按钮..
每个按钮 #!/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");
}
}
);
和plus
为minus
而不是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;
}
}
});
进行此更改后,您的代码应该可以正常工作。