Ich versuche, einen einfachen Rechner zu machen, aber ich bekomme einen Fehler. Hier ist mein Code.Fehler in Arraylist innerhalb der Schleife java.lang.IllegalStateException: Konnte Methode für Android nicht ausführen: onClick
public class MainActivity extends AppCompatActivity {
TextView tvInput;
String textcontent = "";
String input = "";
ArrayList<Integer> number = new ArrayList<Integer>();
ArrayList<Character> operator = new ArrayList<Character>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvInput= (TextView) findViewById(R.id.textView_input);
}
public void btn1(View view) {
input = input + "1";
tvInput.setText(input);
}
public void btn3(View view) {
input = input + "3";
tvInput.setText(input);
}
public void btn2(View view) {
input = input + "2";
tvInput.setText(input);
}
public void btn0(View view) {
input = input + "0";
tvInput.setText(input);
}
public void btn7(View view) {
input = input + "7";
tvInput.setText(input);
}
public void btn8(View view) {
input = input + "8";
tvInput.setText(input);
}
public void btn9(View view) {
input = input + "9";
tvInput.setText(input);
}
public void btn5(View view) {
input = input + "5";
tvInput.setText(input);
}
public void btn6(View view) {
input = input + "6";
tvInput.setText(input);
}
public void btnSub(View view) {
number.add(Integer.parseInt(tvInput.getText().toString()));
tvInput.setText("-");
operator.add('-');
input = "";
}
public void btnMul(View view) {
number.add(Integer.parseInt(tvInput.getText().toString()));
tvInput.setText("*");
operator.add('*');
input = "";
}
public void btnDiv(View view) {
number.add(Integer.parseInt(tvInput.getText().toString()));
tvInput.setText("/");
operator.add('/');
input = "";
}
public void btn4(View view) {
input = input + "4";
tvInput.setText(input);
}
public void btnAdd(View view) {
number.add(Integer.parseInt(tvInput.getText().toString()));
tvInput.setText("+");
operator.add('+');
input = "";
}
public void btnEqual(View view) {
int result = 0;
for(int i = 1; i <= number.size(); i++) {
result = number.get(i - 1);
if(operator.get(i - 1) == '+')
result = result+number.get(i); //error is here
tvInput.setText("" + result);
}
}
}
denke ich, dass Fehler, da Änderung var des Ergebnisses innerhalb der Schleife ..
Dies ist der Fehler:
java.lang.IllegalStateException: Could not execute method for android:onClick
Wo liegt das Problem? Was ist die Lösung?
Ich sehe keine onClick-Methode in Ihrem Code; es könnte erforderlich sein. Denken Sie vielleicht daran, den gesamten Stacktrace zu veröffentlichen, anstatt nur den Teil, von dem Sie denken, dass er von entscheidender Bedeutung sein könnte – planetmaker
Bitte fügen Sie Ihren gesamten Fehler Stack Trace an. Aber ich habe das Gefühl, dass das Problem darin besteht, wie du den Onclick deiner Buttons in der XML-Datei verbindest. Sie sollten etwas wie 'onClick =" btn1() "' haben – Siavash