在Eclipse AVD,我收到了"不幸的是,计算器已经停止" API级别16 [英] In Eclipse AVD I get a "Unfortunately, Calculator has stopped." API level 16

查看:254
本文介绍了在Eclipse AVD,我收到了"不幸的是,计算器已经停止" API级别16的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的测试应用程序称为计算器,但我得到一个不幸的是,计算器已经停止。错误AVD。我正在与API级别16.我的Andr​​oid虚拟设备这是我的code:(尽可能的Eclipse说没有语法错误)

My test application is called Calculator, but I get an "Unfortunately, Calculator has stopped." error in AVD. I'm running my Android Virtual Device with API Level 16. This is my code : (No syntax errors as far as Eclipse says)

MainActivity.java :

    package com.papps.calculator;

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

    public class MainActivity extends Activity {
    int num1 = 90;
    int num2 = 90;
    int op = 0;
    int ans = 0;

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

    Button ButtonEquals = (Button) findViewById(R.id.ButtonEquals);

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    //ONE
    public void none() {
        if(num1 == 90) {
            num1 = 1;
        }
        else if(num2 == 90) {
            num2 = 1;
         }
    }
    //TWO
    public void ntwo() {
        if(num1 == 90) {
            num1 = 2;
        }
        else if(num2 == 90) {
            num2 = 2;
         }
    }
    //THREE
    public void nthree() {
        if(num1 == 90) {
            num1 = 3;
        }
        else if(num2 == 90) {
            num2 = 3;
         }
    }
    //FOUR
    public void nfour() {
        if(num1 == 90) {
            num1 = 4;
        }
        else if(num2 == 90) {
            num2 = 4;
         }
    }
    //FIVE
    public void nfive() {
        if(num1 == 90) {
            num1 = 5;
        }
        else if(num2 == 90) {
            num2 = 5;
         }
    }
    //SIX
    public void nsix() {
        if(num1 == 90) {
            num1 = 6;
        }
        else if(num2 == 90) {
            num2 = 6;
         }
    }
    //SEVEN
    public void nseven() {
        if(num1 == 90) {
            num1 = 7;
        }
        else if(num2 == 90) {
            num2 = 7;
         }
    }
    //EIGHT
    public void neight() {
        if(num1 == 90) {
            num1 = 8;
        }
        else if(num2 == 90) {
            num2 = 8;
         }
    }
    //NINE
    public void nnine() {
        if(num1 == 90) {
            num1 = 9;
        }
        else if(num2 == 90) {
            num2 = 9;
         }
    }
    //ZERO
    public void nzero() {
        if(num1 == 90) {
            num1 = 0;
        }
        else if(num2 == 90) {
            num2 = 0;
         }
    }
    //operators

    //MULTIPLY
    public void multiply() {
        op = 1;
    }
    //Divide
    public void divide() {
        op = 2;
    }
    //Add
    public void add() {
        op = 3;
    }
    //Subtract
    public void subtract() {
        op = 4;
    }

    //EQUALS
    //TextView answer = (TextView) findViewById(R.id.answer);
    //Button ButtonEquals = (Button) findViewById(R.id.ButtonEquals);
    public void equals() {
        if(op == 1){
            answer.setText(num1 * num2);
        }
        else if(op == 2) {
            answer.setText(num1 / num2);
        }
        else if(op == 3) {
            answer.setText(num1 + num2);
        }
        else if(op == 4) {
            answer.setText(num1 - num2);
        }
    }
    }

activity_main.xml :


<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" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="97dp"
        android:layout_marginTop="16dp"
        android:text="@string/app_name"
        tools:context=".MainActivity" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="14dp"
        android:layout_marginTop="15dp"
        android:text="1"
        android:onClick = "none" />

    <Button
        android:id="@+id/Button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignLeft="@+id/textView1"
        android:layout_marginLeft="15dp"
        android:text="2"
        android:onClick = "ntwo" />

    <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_marginLeft="34dp"
        android:layout_toRightOf="@+id/Button2"
        android:text="3"
        android:onClick = "nthree" />

    <Button
        android:id="@+id/Button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:layout_marginTop="36dp"
        android:text="4"
        android:onClick = "nfour" />

    <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="5"
        android:onClick = "nfive" />

    <Button
        android:id="@+id/Button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/Button5"
        android:layout_alignBottom="@+id/Button5"
        android:layout_alignLeft="@+id/Button3"
        android:text="6" 
        android:onClick = "nsix" />

    <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="7" 
        android:onClick = "nseven" />

    <Button
        android:id="@+id/Button8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/Button3"
        android:text="8" 
        android:onClick = "neight" />

    <Button
        android:id="@+id/Button9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/Button6"
        android:layout_centerVertical="true"
        android:text="9"
        android:onClick = "nnine" />

    <Button
        android:id="@+id/Button0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/Button8"
        android:layout_below="@+id/Button8"
        android:layout_marginTop="29dp"
        android:text="0"
        android:onClick = "nzero" />

    <Button
        android:id="@+id/ButtonM"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:text="X"
        android:onClick = "multiply" />

    <Button
        android:id="@+id/ButtonD"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/Button7"
        android:text="/"
        android:onClick = "divide" />

    <Button
        android:id="@+id/ButtonS"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/textView1"
        android:text="-"
        android:onClick = "subtract" />

    <Button
        android:id="@+id/ButtonA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="14dp"
        android:layout_toRightOf="@+id/ButtonS"
        android:text="+"
        android:onClick = "add" />

    <TextView
        android:id="@+id/answer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/ButtonD"
        android:layout_marginBottom="24dp"
        android:layout_toRightOf="@+id/ButtonD"
        android:text="Answer"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/ButtonEquals"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/answer"
        android:layout_alignBottom="@+id/answer"
        android:layout_toLeftOf="@+id/Button0"
        android:text="="
        android:onClick = "equals" />

</RelativeLayout>

任何帮助AP preciated!我无法弄清楚什么是错的。

Any help is appreciated! I can't figure out what's wrong.

推荐答案

您的问题最有可能出在全球视野变量。
修改

Your problem most likely lies with the global View variables. Modify

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

    Button ButtonEquals = (Button) findViewById(R.id.ButtonEquals);

所以它只是

TextView answer;
Button ButtonEquals;

然后在的onCreate(),做到这一点:

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

    answer = (TextView) findViewById(R.id.answer);
    ButtonEquals = (Button) findViewById(R.id.ButtonEquals);
    }

您的应用程序可能是崩溃,因为您尝试访问该意见前的活动有什么可以炫耀的事实。把你的code的setContentView允许后,被发现的看法和你避免 NullPointerException异常取值

Your app is probably crashing because of the fact that you are trying to access the Views before the Activity has anything to show. Putting your code after setContentView allows the Views to be found and you avoid NullPointerExceptions

另外:

您的方法必须是方法名(查看视图)如果他们是从的onClick引用:属性

Your methods need to be methodName (View view) if they are referenced from the onClick: attribute

大多数你的方法需要改变,但我会采取 ButtonEquals 作为一个例子。
你的XML表示

Most your methods need to be changed, but I'll take the ButtonEquals as an example. Your xml says

android:onClick = "equals"

因此​​,在您code中的方法必须是

So the method in your code needs to be

public void equals (View v)

添加查看参数需求的每个方式做了的onClick:属性使用。

Adding the View argument needs to be done for every method that the onClick: attribute uses.

这篇关于在Eclipse AVD,我收到了&QUOT;不幸的是,计算器已经停止&QUOT; API级别16的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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