Gerade begann Android-Codierung zu lernen. Ich kenne die Grundlagen von Java und verbessere es. Über Tasten gelernt und OnclickListeners
so dachte ich an die Entwicklung eines einfachen Programms, um Tasten zu verwenden und entwarf einen Taschenrechner. Bitte hilf mir, wenn meine Logik stimmt. Wenn ich gleich (beq
Knopf) drücke, funktioniert es nicht!Anfänger auf Android - OnClickListeners
int a, b, total,OP;
Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b0, badd, bsub, bmul, bdiv, bclr, beq;
EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button) findViewById(R.id.b1);
b2 = (Button) findViewById(R.id.b2);
b3 = (Button) findViewById(R.id.b3);
b4 = (Button) findViewById(R.id.b4);
b5 = (Button) findViewById(R.id.b5);
b6 = (Button) findViewById(R.id.b6);
b7 = (Button) findViewById(R.id.b7);
b8 = (Button) findViewById(R.id.b8);
b9 = (Button) findViewById(R.id.b9);
b0 = (Button) findViewById(R.id.b0);
badd = (Button) findViewById(R.id.add);
bsub = (Button) findViewById(R.id.sub);
bmul = (Button) findViewById(R.id.div);
bdiv = (Button) findViewById(R.id.mul);
bclr = (Button) findViewById(R.id.clr);
beq = (Button) findViewById(R.id.eq);
et = (EditText) findViewById(R.id.et);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("1");
} else {
et.append("1");
}
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("2");
} else {
et.append("2");
}
}
});
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("3");
} else {
et.append("3");
}
}
});
b4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("4");
} else {
et.append("4");
}
}
});
b5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("5");
} else {
et.append("5");
}
}
});
b6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("6");
} else {
et.append("6");
}
}
});
b7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("7");
} else {
et.append("7");
}
}
});
b8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("8");
} else {
et.append("8");
}
}
});
b9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("9");
} else {
et.append("9");
}
}
});
b0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et.equals("")) {
et.setText("0");
}
else {
et.append("0");
}
}
});
badd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int a = Integer.parseInt(et.getText().toString());
et.setText("");
OP = 1;
}
});
bsub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int a = Integer.parseInt(et.getText().toString());
et.setText("");
OP = 2;
}
});
bdiv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int a = Integer.parseInt(et.getText().toString());
et.setText("");
OP = 3;
}
});
bmul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int a = Integer.parseInt(et.getText().toString());
et.setText("");
OP = 4;
}
});
bclr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et.setText("");
a=0;
b=0;
total=0;
OP=0;
}
});
beq.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (OP){
case 1:
b= Integer.parseInt(et.getText().toString());
total=a+b;
et.setText(String.format("%d",total));
break;
case 2:
b= Integer.parseInt(et.getText().toString());
total=a-b;
et.setText(String.format("%d",total));
break;
case 3:
b= Integer.parseInt(et.getText().toString());
total=a/b;
et.setText(String.format("%d",total));
break;
case 4:
b= Integer.parseInt(et.getText().toString());
total=a*b;
et.setText(String.format("%d",total));
break;
}
}
});
}
}
In 'onClick()' 'für beq', können Sie Wert überprüfen' total'. Tun Sie einfach 'System.out.println (total);'. Das Ergebnis wird in logcat unter 'System.out' angezeigt. –
Sie könnten einen oder mehrere der folgenden Schritte ausführen; einen Unterbrechungspunkt hinzufügen und debuggen; fügen Sie einen Toast hinzu, der den Wert von OP a und b vor dem Wechsel überprüft; Standard hinzufügen, um einen Toast auszugeben. Sie können Log-Aufrufe ähnlich wie Toasts verwenden. Meine Vermutung ist, dass OP endet nicht 1,2,3 oder 4. – MikeT