Reputation: 21
So I am working with a simple android calculator, I have made 5 buttons, +, -, /, * and C. C is supposed to reset all the text field so that they get erased. Basically turned null. Here is the java code, but I do not know how to write the code for the null button. Erasing the content that is inside them the text fields (editTextNumber1, editTextNumber2 and editTextnumber3) These are textboxes, 1 and 2 is where you input the three numbers, 3 is the textbox outputting the answer after the calculation have been made of the numbers that originally was putted in textboxes 1 and 2.
like you do on a real calculator when you tap C (Clear button).
package com.example.raknaretest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void AddBtn(View v){
EditText et1 =(EditText)findViewById(R.id.editTextNumber1);
EditText et2 =(EditText)findViewById(R.id.editTextNumber2);
EditText et3 =(EditText)findViewById(R.id.editTextNumber3);
int n1 = Integer.parseInt(et1.getText().toString());
int n2 = Integer.parseInt(et2.getText().toString());
int result = n1+n2;
et3.setText("= " + result);
}
public void SubBtn(View v){
EditText et1 =(EditText)findViewById(R.id.editTextNumber1);
EditText et2 =(EditText)findViewById(R.id.editTextNumber2);
EditText et3 =(EditText)findViewById(R.id.editTextNumber3);
int n1 = Integer.parseInt(et1.getText().toString());
int n2 = Integer.parseInt(et2.getText().toString());
int result = n1 - n2;
et3.setText("= " + result);
}
public void MultBtn(View v){
EditText et1 =(EditText)findViewById(R.id.editTextNumber1);
EditText et2 =(EditText)findViewById(R.id.editTextNumber2);
EditText et3 =(EditText)findViewById(R.id.editTextNumber3);
int n1 = Integer.parseInt(et1.getText().toString());
int n2 = Integer.parseInt(et2.getText().toString());
int result = n1 * n2;
et3.setText("= " + result);
}
public void DivBtn(View v){
EditText et1 =(EditText)findViewById(R.id.editTextNumber1);
EditText et2 =(EditText)findViewById(R.id.editTextNumber2);
EditText et3 =(EditText)findViewById(R.id.editTextNumber3);
int n1 = Integer.parseInt(et1.getText().toString());
int n2 = Integer.parseInt(et2.getText().toString());
int result = n1 / n2;
et3.setText("= " + result);
}
// public void ClearBtn(View view) {
// }
}
Upvotes: 0
Views: 826
Reputation: 1058
See other answers on how to clear the text.
I suggest you save your EditText
s in local variables and create methods for fetching their values. Also, method names should start with a lower case character and be private
(since you probably don't want to use them outside of MainActivity
) and variable names should be significant:
package com.example.raknaretest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private EditText et1, et2, et3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1 = (EditText) findViewById(R.id.editTextNumber1);
et2 = (EditText) findViewById(R.id.editTextNumber2);
et3 = (EditText) findViewById(R.id.editTextNumber3);
}
private void addBtn(View v) {
int result = value(et1) + value(et2);
displayResult(result);
}
private void subBtn(View v) {
int result = value(et1) - value(et2);
displayResult(result);
}
private void multBtn(View v) {
int result = value(et1) * value(et2);
displayResult(result);
}
private void divBtn(View v) {
int result = value(et1) / value(et2);
displayResult(result);
}
private int value(EditText editText) {
return Integer.parseInt(editText.getText().toString());
}
private void displayResult(int result) {
et1.getText().clear();
et2.getText().clear();
et3.setText("= " + result);
}
}
Upvotes: 0