Создание калькулятора для 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