Ich habe versucht, einen Taschenrechner zu bauen, wie wenn ich Button "1" klicken, wird es "100" auf Text anzeigen, aber in der Berechnung wird es Wert "1 ". Also als "200" beim Drücken der Taste "2". Ich habe separate gettext() und settext() beim Klicken auf die Schaltfläche gemacht. Wenn die Schaltfläche zum ersten Mal angeklickt wird, funktioniert es einwandfrei. Aber nichts geht, wenn ich einen anderen Knopf drücke. Wenn z. B. die Taste "1" und dann "3" gedrückt wird, sollte der Wert "13" und der Text auf "100300" gesetzt werden. Aber es tut das nicht.Es zeigt nur "100", wenn Taste "1" gedrückt wird, egal wie oft ich die Taste nach dem ersten Mal drücke.Es stoppt setText() und getText() {1 = 1,2 = ২,3 = 3,4 = 4,5 = 5,6 = 6,7 = 7,8 = 8,9 = 9} Hier ist mein CodebeispielMüssen Arbeit setText und getText mehr als einmal machen
public class MainActivity extends AppCompatActivity implements
View.OnClickListener {
Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9
char op;
TextView eresult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
typecast();
btn0.setOnClickListener(this);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
btn9.setOnClickListener(this);
}
public void typecast() {
eresult = (TextView) findViewById(R.id.textview);
btn0 = (Button) findViewById(R.id.zero);
btn1 = (Button) findViewById(R.id.one);
btn2 = (Button) findViewById(R.id.two);
btn3 = (Button) findViewById(R.id.three);
btn4 = (Button) findViewById(R.id.four);
btn5 = (Button) findViewById(R.id.five);
btn6 = (Button) findViewById(R.id.six);
btn7 = (Button) findViewById(R.id.seven);
btn8 = (Button) findViewById(R.id.eight);
btn9 = (Button) findViewById(R.id.nine);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.zero) {
eresult.setText("000");
result.getText().equals(0);
}
else if (v.getId() == R.id.one) {
eresult.setText("100");
eresult.getText().equals(1);
}
else if (v.getId() == R.id.two) {
eresult.setText("200");
eresult.getText().equals(2);
}
else if (v.getId() == R.id.three) {
eresult.setText("300");
eresult.getText().equals(3);
}
else if (v.getId() == R.id.four) {
eresult.setText("400");
eresult.getText().equals(4);
}
else if (v.getId() == R.id.five) {
eresult.setText("500");
eresult.getText().equals(5);
}
else if (v.getId() == R.id.six) {
eresult.setText("600");
eresult.getText().equals(6);
}
else if (v.getId() == R.id.seven) {
eresult.setText("700");
eresult.getText().equals(7);
}
else if (v.getId() == R.id.eight) {
eresult.setText("800");
eresult.getText().equals(8);
}
else if (v.getId() == R.id.nine) {
eresult.setText("900");
eresult.getText().equals(9);
}
bekommt nicht auch der Wert von 300 statt 3.i soll nur "300" anzeigen aber der Wert bleibt "3". Ich sage das, weil ich Taschenrechner mit meiner Landessprache mache. Wo der Wert gleich bleibt, aber etwas anderes zeigt. –