创建计算器Android应用程序

时间:2014-11-02 13:43:21

标签: java android xml eclipse android-layout

我正在学习android编程,我只是不知道如何将我的xml变成一个有效的计算器。

这是我的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"
tools:context="com.afm.calculator.MainActivity" >

<TextView
    android:id="@+id/tvresult"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text=""
    android:textSize="40dp" />

<Button
    android:id="@+id/times"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="x"
    android:textSize="40sp" />

<Button
    android:id="@+id/plus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="+"
    android:textSize="40dp" />

<Button
    android:id="@+id/divide"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="÷"
    android:textSize="40sp" />

<Button
    android:id="@+id/mines"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="-"
    android:textSize="40sp" />

<Button
    android:id="@+id/equal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="="
    android:textSize="40sp" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="numberDecimal" >

</EditText>

<EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="numberDecimal" />

</RelativeLayout>

这是我的java:

package com.afm.cal;
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 implements android.view.View.OnClickListener {

Button mines, plus, divide, times, equal;
EditText eto, ett;
TextView tv;

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

    mines = (Button) findViewById(R.id.mines);
    plus = (Button) findViewById(R.id.plus);
    divide = (Button) findViewById(R.id.divide);
    times = (Button) findViewById(R.id.times);
    equal = (Button) findViewById(R.id.equal);
    eto = (EditText) findViewById(R.id.editText1);
    ett = (EditText) findViewById(R.id.editText2);
    tv = (TextView) findViewById(R.id.tvresult);



}


public void onClick(View arg0) {

}

}

请帮我完成并提前完成

2 个答案:

答案 0 :(得分:1)

使用xml中Button的android:onClick属性为每个按钮分配一个方法。

例如android:onClick="doSomething"。单击此按钮将调用doSomething()方法。

您的方法应该从TextField获取值并在这些方法中执行操作。然后在TextView

中显示结果

答案 1 :(得分:1)

首先使用setOnClickListener方法为所有按钮添加Listener。

例如:plus.setOnClickListener(this);

在您的onClick方法中进行修改,如下所示。

public void onClick(View view) {        

    if (view == mines) {
        // do the calculation here
        //update the TextView using tv.setText()
    } else if (view == plus) {
        // do the calculation here
        //update the TextView 
    }
    //.. So on for all buttons

}