こんにちは私はAndroidで電卓を作成するのに助けが必要です。私はちょっと作ったけど、2つの数字を追加する方法を探しています。 5 + 5は答えが10で、最初に5を追加して別の番号に置き換えるのではなく、それが追加されるよりも、ある特定の方法があります。どのように私はこの部分を変更:Androidで電卓を作成する際に助けが必要
public void onClick(View v) {
switch (v.getId()) {
case R.id.plus:
if (operand1 == 0) {
operand1 = Integer.parseInt(resultText.getText().toString());
resultText.setText("0");
operator = "+";
} else {
operand2 = Integer.parseInt(resultText.getText().toString());
answer = operand1 + operand2;
operand1 = answer;
resultText.setText("" + answer);
operand2 = 0;
answer = 0;
operator = "";
}
break;
追加し、別の番号で、それが追加されるよりも、それを交換するよりも、それはむしろ5よりも例えば5 + 5 = 10にします。ここで
は私の完全なコードです:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
EditText resultText;
Button one1, two1, three1;
Button plus1;
Button four1;
Button five1;
Button six1;
Button minus1;
Button seven1;
Button eight1;
Button nine1;
Button multiply1;
Button clear;
Button zero1;
Button square1;
Button divide1, equals;
int operand1, operand2, answer;
String input, operator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultText = (EditText) findViewById(R.id.space);
resultText.setText("0");
one1 = (Button) findViewById(R.id.one);
two1 = (Button) findViewById(R.id.two);
three1 = (Button) findViewById(R.id.three);
plus1 = (Button) findViewById(R.id.plus);
four1 = (Button) findViewById(R.id.four);
five1 = (Button) findViewById(R.id.five);
six1 = (Button) findViewById(R.id.six);
minus1 = (Button) findViewById(R.id.minus);
seven1 = (Button) findViewById(R.id.seven);
eight1 = (Button) findViewById(R.id.eight);
nine1 = (Button) findViewById(R.id.nine);
multiply1 = (Button) findViewById(R.id.multiply);
clear = (Button) findViewById(R.id.c);
zero1 = (Button) findViewById(R.id.zero);
square1 = (Button) findViewById(R.id.square);
divide1 = (Button) findViewById(R.id.divide);
equals = (Button) findViewById(R.id.equal);
one1.setOnClickListener(this);
two1.setOnClickListener(this);
three1.setOnClickListener(this);
plus1.setOnClickListener(this);
four1.setOnClickListener(this);
five1.setOnClickListener(this);
six1.setOnClickListener(this);
minus1.setOnClickListener(this);
seven1.setOnClickListener(this);
eight1.setOnClickListener(this);
nine1.setOnClickListener(this);
multiply1.setOnClickListener(this);
clear.setOnClickListener(this);
zero1.setOnClickListener(this);
square1.setOnClickListener(this);
divide1.setOnClickListener(this);
equals.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.plus:
if (operand1 == 0) {
operand1 = Integer.parseInt(resultText.getText().toString());
resultText.setText("0");
operator = "+";
} else {
operand2 = Integer.parseInt(resultText.getText().toString());
answer = operand1 + operand2;
operand1 = answer;
resultText.setText("" + answer);
operand2 = 0;
answer = 0;
operator = "";
}
break;
case R.id.minus:
if (operand1 == 0) {
operand1 = Integer.parseInt(resultText.getText().toString());
resultText.setText("0");
operator = "-";
} else {
operand2 = Integer.parseInt(resultText.getText().toString());
answer = operand1 - operand2;
operand1 = answer;
resultText.setText("" + answer);
operator = "";
operand2 = 0;
answer = 0;
}
break;
case R.id.multiply:
if (operand1 == 0) {
operand1 = Integer.parseInt(resultText.getText().toString());
operator = "*";
resultText.setText("0");
} else {
operand2 = Integer.parseInt(resultText.getText().toString());
answer = operand1 * operand2;
operand1 = answer;
resultText.setText("" + answer);
operand2 = 0;
answer = 0;
operator = "";
}
break;
case R.id.divide:
if (operand1 == 0) {
operand1 = Integer.parseInt(resultText.getText().toString());
operator = "/";
resultText.setText("0");
} else {
operand2 = Integer.parseInt(resultText.getText().toString());
answer = operand1/operand2;
operand1 = answer;
resultText.setText("" + answer);
operand2 = 0;
answer = 0;
operator = "";
}
break;
case R.id.equal:
if (operand1 != 0) {
operand2 = Integer.parseInt(resultText.getText().toString());
switch (operator) {
case "+":
answer = operand1 + operand2;
break;
case "-":
answer = operand1 - operand2;
break;
case "*":
answer = operand1 * operand2;
break;
case "/":
answer = operand1/operand2;
break;
default:
answer=0;
break;
}
operand1 = answer;
resultText.setText("" + answer);
operand2 = 0;
answer = 0;
}
break;
case R.id.square:
operand1 = Integer.parseInt(resultText.getText().toString());
answer = operand1 * operand1;
resultText.setText("" + answer);
operand1 = answer;
break;
case R.id.c:
operand1 = 0;
operand2 = 0;
answer = 0;
resultText.setText("0");
break;
default:
input = resultText.getText().toString();
if (input.equals("0"))
input = v.getTag().toString();
else
input += v.getTag().toString();
resultText.setText(input);
break;
}
}
}
uがすることができますように私は同じくらい助けることができるかどうかを確認してください。
文字列「5 + 5」を入力する単一のテキストフィールドを編集したい場合は、計算結果が10を出力しますか?あなたが投稿したコードは、古典的な計算機をほぼシミュレートしているので、以前の結果に基づいて演算を連鎖させるためです。 – Ped7g
オペランドを追加する前にオペランドを画面に表示することを意味しますか? – DCruz22
はい私は2つの数字、例えば5 + 5 = 10を追加したいということを意味しています。数字を置き換えずに結果を得るよりも、それが10になると、私は5 + 5のような単純なものを私が10に変わるときよりも、私は5 + 5をテキストフィールドに表示したい – kenshin92