Eclipse Emulator zeigt keine Buttons an

  • 30 Antworten
  • Letztes Antwortdatum
So ich habe den jetzt nochmal komplett neu geschrieben, soweit ist auch alles in Ordnung, habe weder Warnungen noch Errors, die App wird gestartet und wird auch alles korrekt angezeigt, aber die App stürzt ab wenn ein Button geklickt wird, als würde der die Button nicht mit den Methoden verknüpfen.... stimmt da vielleicht was mit dem onClickListener nciht?

XML:
Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="number" >
        <requestFocus />
    </EditText>
    <Button
        android:id="@+id/buttonDelete"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="C" />
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/button7"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="7" />
        <Button
            android:id="@+id/button8"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="8" />
        <Button
            android:id="@+id/button9"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="9" />
        <Button
            android:id="@+id/buttonDivide"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="/" />
    </LinearLayout>
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/button4"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="4" />
        <Button
            android:id="@+id/button5"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="5" />
        <Button
            android:id="@+id/button6"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="6" />
        <Button
            android:id="@+id/buttonMultiply"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="x" />
    </LinearLayout>
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/button1"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="1" />
        <Button
            android:id="@+id/button2"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="2" />
        <Button
            android:id="@+id/button3"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="3" />
        <Button
            android:id="@+id/buttonSub"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="-" />
    </LinearLayout>
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/button0"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="0" />
        <Button
            android:id="@+id/buttonDot"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="." />
        <Button
            android:id="@+id/buttonResult"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="=" />
        <Button
            android:id="@+id/buttonAdd"
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="+" />
    </LinearLayout>
</LinearLayout>
Java Code:
Code:
package com.example.taschenrechner;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener {
    private EditText werteAnzeige;
    private double zwischenErgebnis;
    private String zahl;
    private boolean letztesADD;
    private boolean letztesSUB;
    private boolean letztesMULTIPLY;
    private boolean letztesDIVIDE;
    private boolean letztesRESULT;
    /*private final String NULL = "0";
    private final String EINS = "1";
    private final String ZWEI = "2";
    private final String DREI = "3";
    private final String VIER = "4";
    private final String FÜNF = "5";
    private final String SECHS = "6";
    private final String SIEBEN = "7";
    private final String ACHT = "8";
    private final String NEUN = "9";
    private final String DOT = ".";*/
    private final String RESULT = "=";
    private final String ADD = "+";
    private final String SUB = "-";
    private final String MULTIPLY = "x";
    private final String DIVIDE = "/";
    @SuppressWarnings("unused")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button Button0 = (Button)findViewById(R.id.button0);
                Button0.setOnClickListener(new View.OnClickListener(){
                    @Override
                    public void onClick(View v) {
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                        letztesRESULT = false; //neue Rechnung beginnt
                        werteAnzeige.setText(0); //Anzeige erhält den Wert 0
                        zahl = "0"; //Zwischenspeicher erhält den Wert 0;
                    }
                    else{
                        werteAnzeige.append("0"); //Der Anzeige wird der Wert 0 hinzugefügt
                        zahl = zahl + 0; //dem Zwischenspeicher wird der Wert 0 hinzugefügt
                    }
                    }
                });
        Button Button1 = (Button)findViewById(R.id.button1);
                Button1.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v) {if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                        letztesRESULT = false; //neue Rechnung beginnt
                        werteAnzeige.setText(1); //Anzeige erhält den Wert 1
                        zahl = "1"; //Zwischenspeicher erhält den Wert 1
                    }
                    else{
                        werteAnzeige.append("1"); //Der Anzeige wird der Wert 1 hinzugefügt
                        zahl = zahl + 1; //dem Zwischenspeicher wird der Wert 1 hinzugefügt
                    }
                    }
                });
        Button Button2 = (Button)findViewById(R.id.button2);
                Button2.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                            letztesRESULT = false; //neue Rechnung beginnt
                            werteAnzeige.setText(2); //Anzeige erhält den Wert 2
                            zahl = "2"; //Zwischenspeicher erhält den Wert 2
                        }
                        else{
                            werteAnzeige.append("2"); //Der Anzeige wird der Wert 2 hinzugefügt
                            zahl = zahl + 2; //dem Zwischenspeicher wird der Wert 2 hinzugefügt
                        }
                    }
                });
        Button Button3 = (Button)findViewById(R.id.button3);
                Button3.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                            letztesRESULT = false; //neue Rechnung beginnt
                            werteAnzeige.setText(3); //Anzeige erhält den Wert 3
                            zahl = "3"; //Zwischenspeicher erhält den Wert 3
                        }
                        else{
                            werteAnzeige.append("3"); //Der Anzeige wird der Wert 3 hinzugefügt
                            zahl = zahl + 3; //dem Zwischenspeicher wird der Wert 3 hinzugefügt
                        }
                    }
                });
        Button Button4 = (Button)findViewById(R.id.button4);
                Button4.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                            letztesRESULT = false; //neue Rechnung beginnt
                            werteAnzeige.setText(4); //Anzeige erhält den Wert 4
                            zahl = "4"; //Zwischenspeicher erhält den Wert 4
                        }
                        else{
                            werteAnzeige.append("4"); //Der Anzeige wird der Wert 4 hinzugefügt
                            zahl = zahl + 4; //dem Zwischenspeicher wird der Wert 4 hinzugefügt
                        }
                    }
                });
        Button Button5 = (Button)findViewById(R.id.button5);
                Button5.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                            letztesRESULT = false; //neue Rechnung beginnt
                            werteAnzeige.setText(5); //Anzeige erhält den Wert 5
                            zahl = "5"; //Zwischenspeicher erhält den Wert 5
                        }
                        else{
                            werteAnzeige.append("5"); //Der Anzeige wird der Wert 5 hinzugefügt
                            zahl = zahl + 5; //dem Zwischenspeicher wird der Wert 5 hinzugefügt
                        }
                    }
                });
        Button Button6 = (Button)findViewById(R.id.button6);
                Button6.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                            letztesRESULT = false; //neue Rechnung beginnt
                            werteAnzeige.setText(6); //Anzeige erhält den Wert 6
                            zahl = "6"; //Zwischenspeicher erhält den Wert 6
                        }
                        else{
                            werteAnzeige.append("6"); //Der Anzeige wird der Wert 6 hinzugefügt
                            zahl = zahl + 6; //dem Zwischenspeicher wird der Wert 6 hinzugefügt
                        }
                    }
                });
        Button Button7 = (Button)findViewById(R.id.button7);
                Button7.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                            letztesRESULT = false; //neue Rechnung beginnt
                            werteAnzeige.setText(7); //Anzeige erhält den Wert 7
                            zahl = "7"; //Zwischenspeicher erhält den Wert 7
                        }
                        else{
                            werteAnzeige.append("7"); //Der Anzeige wird der Wert 7 hinzugefügt
                            zahl = zahl + 7; //dem Zwischenspeicher wird der Wert 7 hinzugefügt
                        }
                    }
                });
        Button Button8 = (Button)findViewById(R.id.button8);
                Button8.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                            letztesRESULT = false; //neue Rechnung beginnt
                            werteAnzeige.setText(8); //Anzeige erhält den Wert 8
                            zahl = "8"; //Zwischenspeicher erhält den Wert 8
                        }
                        else{
                            werteAnzeige.append("8"); //Der Anzeige wird der Wert 8 hinzugefügt
                            zahl = zahl + 8; //dem Zwischenspeicher wird der Wert 8 hinzugefügt
                        }
                    }
                });
        Button Button9 = (Button)findViewById(R.id.button9);
                Button9.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(werteAnzeige.getText().toString().equals(0) || letztesRESULT){
                            letztesRESULT = false; //neue Rechnung beginnt
                            werteAnzeige.setText(9); //Anzeige erhält den Wert 9
                            zahl = "9"; //Zwischenspeicher erhält den Wert 9
                        }
                        else{
                            werteAnzeige.append("9"); //Der Anzeige wird der Wert 9 hinzugefügt
                            zahl = zahl + 9; //dem Zwischenspeicher wird der Wert 9 hinzugefügt
                        }
                    }
                });
        Button ButtonAdd = (Button)findViewById(R.id.buttonAdd);
                ButtonAdd.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(!zahl.equals("")){ //nur wenn Zahl eingegeben wurde, erfolgt eine Rechnung
                            if(letztesSUB){
                                zwischenErgebnis = zwischenErgebnis - Double.parseDouble(zahl);// Vom Zwischenergebnis wird die Zahl abgezogen, die vor der Rechnung eingegeben wurde
                                letztesSUB = false;
                            }
                            else if(letztesMULTIPLY){
                                zwischenErgebnis = zwischenErgebnis * Double.parseDouble(zahl);// Das Zwischenergebnis wird mit der Zahl multipliziert, die vor der Rechnung eingegeben wurde
                                letztesMULTIPLY = false;
                            }
                            else if(letztesDIVIDE){
                                zwischenErgebnis = zwischenErgebnis / Double.parseDouble(zahl);// Das Zwischenergebnis wird durch die Zahl geteilt, die vor der Rechnung eingegeben wurde
                                letztesDIVIDE = false;
                            }
                            else{
                                zwischenErgebnis = zwischenErgebnis + Double.parseDouble(zahl);// Dem Zwischenergebnis wird die Zahl hizugefügt, die vor der Rechnung eingegeben wurde
                            }
                            werteAnzeige.append(ADD); //der Anzeige wird ein Pluszeichen hinzugefügt
                            letztesADD = true; // die letzte Rechnung ist eine Addition
                            zahl = ""; // der Zwischenspeicher wird "geleert"
                        }
                    }
                });
        Button ButtonSub = (Button)findViewById(R.id.buttonSub);
                ButtonSub.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(!zahl.equals("")){ //nur wenn Zahl eingegeben wurde, erfolgt eine Rechnung
                            if(letztesADD){
                                zwischenErgebnis = zwischenErgebnis + Double.parseDouble(zahl);// Dem Zwischenergebnis wird die Zahl hinzugefügt, die vor der Rechnung eingegeben wurde
                                letztesADD = false;
                            }
                            else if(letztesMULTIPLY){
                                zwischenErgebnis = zwischenErgebnis * Double.parseDouble(zahl);// Das Zwischenergebnis wird mit der Zahl multipliziert, die vor der Rechnung eingegeben wurde
                                letztesMULTIPLY = false;
                            }
                            else if(letztesDIVIDE){
                                zwischenErgebnis = zwischenErgebnis / Double.parseDouble(zahl);// Das Zwischenergebnis wird durch die Zahl geteilt, die vor der Rechnung eingegeben wurde
                                letztesDIVIDE = false;
                            }
                            else{
                                zwischenErgebnis = zwischenErgebnis - Double.parseDouble(zahl);// Vom Zwischenergebnis wird die Zahl abgezogen, die vor der Rechnung eingegeben wurde
                            }
                            werteAnzeige.append(SUB); //der Anzeige wird ein Minuszeichen hinzugefügt
                            letztesSUB = true; // die letzte Rechnung ist eine Subtraktion
                            zahl = ""; // der Zwischenspeicher wird "geleert"
                        }
                    }
                });
        Button ButtonMultiply = (Button)findViewById(R.id.buttonMultiply);
                ButtonMultiply.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(!zahl.equals("")){ //nur wenn Zahl eingegeben wurde, erfolgt eine Rechnung
                            if(letztesADD){
                                zwischenErgebnis = zwischenErgebnis + Double.parseDouble(zahl);// Dem Zwischenergebnis wird die Zahl hinzugefügt, die vor der Rechnung eingegeben wurde
                                letztesADD = false;
                            }
                            else if(letztesSUB){
                                zwischenErgebnis = zwischenErgebnis - Double.parseDouble(zahl);// Vom Zwischenergebnis wird die Zahl abgezogen, die vor der Rechnung eingegeben wurde
                                letztesSUB = false;
                            }
                            else if(letztesDIVIDE){
                                zwischenErgebnis = zwischenErgebnis / Double.parseDouble(zahl);// Das Zwischenergebnis wird durch die Zahl geteilt, die vor der Rechnung eingegeben wurde
                                letztesDIVIDE = false;
                            }
                            else{
                                zwischenErgebnis = zwischenErgebnis * Double.parseDouble(zahl);// Das Zwischenergebnis wird mit die Zahl multipliziert, die vor der Rechnung eingegeben wurde
                            }
                            werteAnzeige.append(MULTIPLY); //der Anzeige wird ein Malzeichen hinzugefügt
                            letztesMULTIPLY = true; // die letzte Rechnung ist eine Multiplikation
                            zahl = ""; // der Zwischenspeicher wird "geleert"
                        }
                    }
                });
        Button ButtonDivide = (Button)findViewById(R.id.buttonDivide);
                ButtonDivide.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(!zahl.equals("")){ //nur wenn Zahl eingegeben wurde, erfolgt eine Rechnung
                            if(letztesADD){
                                zwischenErgebnis = zwischenErgebnis + Double.parseDouble(zahl);// Dem Zwischenergebnis wird die Zahl hinzugefügt, die vor der Rechnung eingegeben wurde
                                letztesADD = false;
                            }
                            else if(letztesSUB){
                                zwischenErgebnis = zwischenErgebnis - Double.parseDouble(zahl);// Vom Zwischenergebnis wird die Zahl abgezogen, die vor der Rechnung eingegeben wurde
                                letztesSUB = false;
                            }
                            else if(letztesMULTIPLY){
                                zwischenErgebnis = zwischenErgebnis * Double.parseDouble(zahl);// Das Zwischenergebnis wird mit der Zahl multipliziert, die vor der Rechnung eingegeben wurde
                                letztesMULTIPLY = false;
                            }
                            else{
                                zwischenErgebnis = zwischenErgebnis / Double.parseDouble(zahl);// Das Zwischenergebnis wird durch die Zahl geteilt, die vor der Rechnung eingegeben wurde
                            }
                            werteAnzeige.append(DIVIDE); //der Anzeige wird ein Geteiltzeichen hinzugefügt
                            letztesDIVIDE = true; // die letzte Rechnung ist eine Division
                            zahl = ""; // der Zwischenspeicher wird "geleert"
                        }
                    }
                });
        Button ButtonResult = (Button)findViewById(R.id.buttonResult);
                ButtonDivide.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v){
                        if(!zahl.equals("")){
                            if(letztesADD){
                                zwischenErgebnis = zwischenErgebnis + Double.parseDouble(zahl); // Dem Zwischenergebnis wird die Zahl hinzuaddiert, die vor dem Rechenzeichen eingegeben wurde
                                letztesADD = false; //weil Rechnung jetzt abgearbeitet
                                werteAnzeige.append(RESULT + zwischenErgebnis); // Der Anzeige wird das Gleichheitszeichen und das Ergebnis hinzugefügt
                            }
                            if(letztesSUB){
                                zwischenErgebnis = zwischenErgebnis - Double.parseDouble(zahl); // Vom Zwischenergebnis wird die Zahl abgezogen, die vor dem Rechenzeichen eingegeben wurde
                                letztesSUB = false; //weil Rechnung jetzt abgearbeitet
                                werteAnzeige.append(RESULT + zwischenErgebnis); // Der Anzeige wird das Gleichheitszeichen und das Ergebnis hinzugefügt
                            }
                            if(letztesMULTIPLY){
                                zwischenErgebnis = zwischenErgebnis * Double.parseDouble(zahl); // Das Zwischenergebnis wird mit der Zahl multipliziert, die vor dem Rechenzeichen eingegeben wurde
                                letztesMULTIPLY = false; //weil Rechnung jetzt abgearbeitet
                                werteAnzeige.append(RESULT + zwischenErgebnis); // Der Anzeige wird das Gleichheitszeichen und das Ergebnis hinzugefügt
                            }
                            if(letztesDIVIDE){
                                zwischenErgebnis = zwischenErgebnis / Double.parseDouble(zahl); // Das Zwischenergebnis wird durch die Zahl geteilt, die vor dem Rechenzeichen eingegeben wurde
                                letztesDIVIDE = false; //weil Rechnung jetzt abgearbeitet
                                werteAnzeige.append(RESULT + zwischenErgebnis); // Der Anzeige wird das Gleichheitszeichen und das Ergebnis hinzugefügt
                            }
                            zahl = ""; //Zwischenspeicher wird "geleert"
                            zwischenErgebnis = 0; //Zwischenergebnis wird "geleert
                            letztesRESULT = true; //Rechnung ist abgeschlossen
                        }
                    }
                });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        
    }
}

Hier ist die LogCat Ausgabe:
Code:
05-25 16:47:22.249: E/Trace(776): error opening trace file: No such file or directory (2)
05-25 16:47:23.249: D/dalvikvm(776): GC_CONCURRENT freed 77K, 7% free 2783K/2980K, paused 14ms+16ms, total 78ms
05-25 16:47:23.509: D/gralloc_goldfish(776): Emulator without GPU emulation detected.
05-25 16:47:40.509: D/AndroidRuntime(776): Shutting down VM
05-25 16:47:40.509: W/dalvikvm(776): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
05-25 16:47:40.519: E/AndroidRuntime(776): FATAL EXCEPTION: main
05-25 16:47:40.519: E/AndroidRuntime(776): java.lang.NullPointerException
05-25 16:47:40.519: E/AndroidRuntime(776):     at com.example.taschenrechner.MainActivity$6.onClick(MainActivity.java:114)
05-25 16:47:40.519: E/AndroidRuntime(776):     at android.view.View.performClick(View.java:4204)
05-25 16:47:40.519: E/AndroidRuntime(776):     at android.view.View$PerformClick.run(View.java:17355)
05-25 16:47:40.519: E/AndroidRuntime(776):     at android.os.Handler.handleCallback(Handler.java:725)
05-25 16:47:40.519: E/AndroidRuntime(776):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-25 16:47:40.519: E/AndroidRuntime(776):     at android.os.Looper.loop(Looper.java:137)
05-25 16:47:40.519: E/AndroidRuntime(776):     at android.app.ActivityThread.main(ActivityThread.java:5041)
05-25 16:47:40.519: E/AndroidRuntime(776):     at java.lang.reflect.Method.invokeNative(Native Method)
05-25 16:47:40.519: E/AndroidRuntime(776):     at java.lang.reflect.Method.invoke(Method.java:511)
05-25 16:47:40.519: E/AndroidRuntime(776):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-25 16:47:40.519: E/AndroidRuntime(776):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-25 16:47:40.519: E/AndroidRuntime(776):     at dalvik.system.NativeStart.main(Native Method)
05-25 16:47:43.418: I/Process(776): Sending signal. PID: 776 SIG: 9

Habe echt keine Ahnung woran das liegen könnte.....
 
Zuletzt bearbeitet:
Kannst du bitte die LogCat Ausgabe dranhängen?

EDIT: Btw, es heißt
werteAnzeige.setText("1");
 
Zuletzt bearbeitet:
LogCat in den Post von heute mittag eingefügt :)
 
Deine Klasse implementiert das Interface "OnClickListener".

Code:
public class MainActivity extends Activity implements OnClickListener

Du hast in deiner Klasse auch die Methode "onClick" überschrieben.

Code:
Override     public void onClick(View v) {         // TODO Auto-generated method stub              }

Dadurch werden deine ganzen OnClickListener in der Methode "onCreate" gar nicht angesprochen. :)

Kommentiere diese Methode aus, dann sollte es gehen.
 
Habe ich gemacht, aber bekomme dann folgenden Error:

The type MainActivity must implement the inherited abstract method View.OnClickListener.onClick(View)
 
Divin93 schrieb:
Habe ich gemacht, aber bekomme dann folgenden Error:

The type MainActivity must implement the inherited abstract method View.OnClickListener.onClick(View)

Musst auch das "implements OnClickListener" aus der Klassensignatur raushauen.
 
Stürzt immernoch ab wenn ich auf einen Button klicke, werden keine errors angezeigt, Console sagt nichts deswegen

Edit:
LogCat:
Code:
05-25 17:27:43.345: D/dalvikvm(782): GC_CONCURRENT freed 76K, 7% free 2728K/2932K, paused 4ms+34ms, total 176ms
05-25 17:27:44.075: D/gralloc_goldfish(782): Emulator without GPU emulation detected.
05-25 17:27:50.435: D/AndroidRuntime(782): Shutting down VM
05-25 17:27:50.445: W/dalvikvm(782): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
05-25 17:27:50.458: E/AndroidRuntime(782): FATAL EXCEPTION: main
05-25 17:27:50.458: E/AndroidRuntime(782): java.lang.NullPointerException
05-25 17:27:50.458: E/AndroidRuntime(782):     at com.example.taschenrechner.MainActivity$6.onClick(MainActivity.java:114)
05-25 17:27:50.458: E/AndroidRuntime(782):     at android.view.View.performClick(View.java:4204)
05-25 17:27:50.458: E/AndroidRuntime(782):     at android.view.View$PerformClick.run(View.java:17355)
05-25 17:27:50.458: E/AndroidRuntime(782):     at android.os.Handler.handleCallback(Handler.java:725)
05-25 17:27:50.458: E/AndroidRuntime(782):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-25 17:27:50.458: E/AndroidRuntime(782):     at android.os.Looper.loop(Looper.java:137)
05-25 17:27:50.458: E/AndroidRuntime(782):     at android.app.ActivityThread.main(ActivityThread.java:5041)
05-25 17:27:50.458: E/AndroidRuntime(782):     at java.lang.reflect.Method.invokeNative(Native Method)
05-25 17:27:50.458: E/AndroidRuntime(782):     at java.lang.reflect.Method.invoke(Method.java:511)
05-25 17:27:50.458: E/AndroidRuntime(782):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-25 17:27:50.458: E/AndroidRuntime(782):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-25 17:27:50.458: E/AndroidRuntime(782):     at dalvik.system.NativeStart.main(Native Method)
 
Zuletzt bearbeitet:
Mal ne - für dich vllt blöd klingende Frage - "Warum fängst du nicht bei "null" an, wenn du keine richtige Erfahrung hast? Lerne doch erstmal die Grundlagen Javas, bevor du mit irgendwelchen App-Tutorials anfängst.

Du schreibst jetzt einen Taschenrechner, und hast "vllt" keine große Erfahrung was was genau macht. Das macht doch vielmehr Sinn, als irgendwas "größeres" auszuprobieren,oder meinst du nicht? Ist nicht böse gemeint, also fühl dich bitte nicht angegriffen.

Und zur Info: "Ich" bin ebenfalls "Anfänger" und lerne noch. Allerdings habe ich bei null angefangen um erstmal die "Grundlagen" zu verstehen. Und umso mehr ich lerne (und weiß) umso einfacher geht quasi die Programmierung.

Und nach ersten App Erfolgen (Taschenrechner App / BMI Wert Rechner etc. - "ohne Buttons") steigt stetig die Begeisterung und es kommt immer mehr von ganz alleine. ;)
 
Keine sorge ich fühle mich da mit Sicherheit nicht angegriffen ;)
Wie gesagt ich habe in der Schule mit c# praktisch bei null angefangen und auch schon in c# mit Hilfe eines tutorials einen Taschenrechner programmiert der ein klein wenig mehr drauf hatte wie der im tutorial ( wie hier, anstatt "nur" Addition und Subtraktion auch Multiplikation und Division) :)
Und ich verstehe ja auch was was macht, ich verstehe nur nicht wieso der onClickListener nicht greift.....
Habe halt auch von Kollegen gehört das sich die ganzen Programmiersprachen in etwa gleichen, deshalb habe ich damit angefangen, bzw. Habe vorher die hello world APP gemacht und eine weitere APP bei der die Begrüßung aus einem Namen ( den der Anwender selber eingeben muss) und entweder aus "hi" und Name oder "hello" und Name besteht, je nachdem welchen button der Benutzer klickt.
Da hat es ja funktioniert....
Ich werde morgen die beiden Programme mal im bezug auf den onClickListener vergleichen....

Gesendet von meinem Nexus 4 mit der Android-Hilfe.de App
 
Hast Du den Fehler mittlerweile gefunden?

Als Tipp. Schaue Dir mal folgende LogCat Ausgabe an:

05-25 17:27:50.458: E/AndroidRuntime(782): java.lang.NullPointerException

NullPointerException bedeutet, er versucht auf ein Objekt zuzugreifen, welches noch gar nicht initialisiert wurde.

In deinem Fall ist es
Code:
private EditText werteAnzeige;
 
Hallo,
ich Trottel hatte die Initialisierungen vergessen -.- peinlich :D

Naja jedenfalls funzt jetzt so gut wie alles :D
nur wenn ich mal oder geteilt rechne ist das ergebnis immer 0^^

Aber das schaue ich mir nachher nochmal an, müsste eig auch funzen, weil steht ja alles genauso drinne wie bei der addition und subtraktion^^

EDIT: Is logisch warum das nicht funktioniert :D da muss ich mir was anderes einfallen lassen um das zu lösen :D
Vielen Dank euch allen für eure Hilfe!
 
Zuletzt bearbeitet:
Zurück
Oben Unten