0

我试图编写代码以制作一个简单的计算器,但模拟器不起作用!它给了我这个消息“抱歉,应用程序 Task_6(进程 com.example.task_6)已意外停止,请重试。

这是来自 LogCat 的消息:“在 dalvik.system.NativeStart.main(Native metod)”当我单击按钮 (+) 或退格按钮时:\\

布局类似于 windows cal :

这是我的代码,我想知道这段代码是否有问题:\ !!

package com.example.task_6;

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

public class MainActivity extends Activity implements OnClickListener   {

     EditText textBox;
     Button b1,b2,b3,b4,b5,b6,b7;
     int number_1,number_2,result,temp;

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

        textBox= (EditText) findViewById(R.id.TextBox);
        b1=(Button)findViewById(R.id.button1);
        b2=(Button)findViewById(R.id.Button01);
        b3=(Button)findViewById(R.id.button2);
        b4=(Button)findViewById(R.id.button3);
        b5=(Button)findViewById(R.id.button4);
        b6=(Button)findViewById(R.id.button5);
        b7=(Button)findViewById(R.id.button6);

        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
        b3.setOnClickListener(this);
        b4.setOnClickListener(this);
        b5.setOnClickListener(this);
        b6.setOnClickListener(this);
        b7.setOnClickListener(this);
       }

    public void onClick(View arg) { 
    if(arg==b1){

        textBox.setText("");

    }

 if(arg==b2){   
     temp=Integer.parseInt(textBox.getText().toString().substring(0, textBox.length()-1));
     textBox.setText(temp); 
    }
 if(arg==b3){

    number_1=Integer.parseInt(textBox.getText().toString());
    textBox.setText("");
    number_2=Integer.parseInt(textBox.getText().toString());
    result=number_1+number_2;
 }

 if(arg==b4){

     number_1=Integer.parseInt(textBox.getText().toString());
     textBox.setText("");
     number_2=Integer.parseInt(textBox.getText().toString());
     result=number_1-number_2;  
 }

 if(arg==b5){
     textBox.setText(result);   
 }
 if(arg==b6){

     number_1=Integer.parseInt(textBox.getText().toString());
     textBox.setText("");
     number_2=Integer.parseInt(textBox.getText().toString());
     result=number_1*number_2;  
 }
 if(arg==b7){

     number_1=Integer.parseInt(textBox.getText().toString());
     textBox.setText("");
     number_2=Integer.parseInt(textBox.getText().toString());
     result=number_1/number_2;
      } 
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }   
}

在此处输入图像描述

4

1 回答 1

2

onclick 语句的问题

如果您使用:

public void function(View arg)
{
     ....
     ....
}

然后应该从布局 XML 本身调用它。

XML 文件:

 <button
      android:id="@+id/b1"
      android:onclick="function" />

当您动态创建 onClick 函数时,它就像:

 b1.setOnClickListener(new onClickListener(
 {
    public void onClick(View v)
    {
         ....
         ....
    }
 });
于 2013-06-24T12:38:56.567 回答