Создание калькулятора для Android-приложения

Я изучаю программирование 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>

вот моя ява:

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 ответа

Решение

Сначала добавьте Listener ко всем вашим кнопкам, используя setOnClickListener метод.

Например: 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

}

Назначьте каждой кнопке метод, используя android:onClick атрибут кнопки в XML.

Например android:onClick="doSomething", Эта кнопка будет вызывать doSomething() метод, когда он нажал.

Ваши методы должны получить значения от TextFieldи выполните операцию внутри этих методов. Затем отобразите результат в TextView

Другие вопросы по тегам