Falsche ausgabe einer Rechnung!

Bitte aktiviere JavaScript!
Hallo zusammen,
bin neu in der Welt von Java, aber Arbeite mich gut voran. Nun bin ich an einem Punkt wo ich nicht mehr weiter komme und ich eure Hilfe brauche.
Ich arbeite an einer App zur berechnung der Ladungssicherung.
Zur Probe habe ich mal 3 Zahlen und einen Spinner ( der verschiedene Werte hat) addiert.
Nun folgendes Problem.
Wenn ich Zahl1 (1) + Zahl2 (1) + Zahl3 (1) + Spinner (0,4) addieren lassen möchte kommt statt 3,4 nur 30,4 raus. Weis einer was ich falsch mache.

Hier mal die ganze Activity;

Java:
public class Ladungssicherung extends AppCompatActivity implements AdapterView.OnItemSelectedListener {




    private EditText winkelinput;
    private String text;


    Dialog epicDialog;
    TextView unicode, ergebnissFeld;
    ImageView muinfoButton, closemuButton, infoalphaButton;

    @SuppressLint("StringFormatInvalid")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_ladungssicherung);

        winkelinput = (EditText)findViewById(R.id.winkelInput);
        ergebnissFeld= (TextView)findViewById(R.id.ergebniss);


        SharedPreferences sharedPreferences = getSharedPreferences("sharedPrefs", MODE_PRIVATE);
        text = sharedPreferences.getString("text", "");
        winkelinput.setText(text);
        sharedPreferences.edit().remove("text").commit();

    epicDialog = new Dialog(this, android.R.style.Theme_DeviceDefault_Light_NoActionBar_Fullscreen);


        muinfoButton = (ImageView) findViewById(R.id.infomuIcon);
        closemuButton = (ImageView)findViewById(R.id.closemuinfo);
        infoalphaButton = (ImageView)findViewById(R.id.infoalpha);

        muinfoButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showmuinfo();


            }
        });

        infoalphaButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showalphawinkel();
            }
        });


        //Spinner code
        Spinner spinner = findViewById(R.id.spinner1);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.numbers, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);



    }

    public void showalphawinkel(){

       Intent intent = new Intent(this, WinkelmessActivity.class);
       startActivity(intent);


    }




    public void showmuinfo(){

        epicDialog.setContentView(R.layout.muinfo);
        closemuButton = (ImageView) epicDialog.findViewById(R.id.closemuinfo);

        closemuButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                epicDialog.dismiss();
            }
        });

        epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        epicDialog.show();
    }





        @Override
        public void onItemSelected (AdapterView < ? > parent, View view,int position, long id){

    }

        @Override
        public void onNothingSelected (AdapterView < ? > parent){

    }

        public void ergebnissFromel(View view){

        EditText feld1 = (EditText) findViewById(R.id.gewichtInput);
        EditText feld2 = (EditText) findViewById(R.id.winkelInput);
        EditText feld3 = (EditText) findViewById(R.id.stfInput);
        Spinner feld4 = (Spinner) findViewById(R.id.spinner1);

        Integer zahl1 = Integer.parseInt(feld1.getText().toString());
        Integer zahl2 = Integer.parseInt(feld2.getText().toString());
        Integer zahl3 = Integer.parseInt(feld3.getText().toString());


        String spinner = feld4.getSelectedItem().toString();

        ergebnissFeld.setText(String.valueOf(zahl1+zahl2+zahl3+spinner));

        }
}
 
A

Anzeige




Vielleicht hilft dir unser Java-Tutorial hier weiter —> (hier klicken)
Das Problem ist, dass spinner vom Typ String ist und somit keine arithmetische Addition sondern eine String-Konkatenation von "3" (implizit aus dem Integer 3 in einen String konvertiert) + "0,4" stattfindet.
 
sobald ich die Zahlen eingebe und auf den Button drücke bricht die App ab.

Logcat zeigt folgendes:

12-11 20:40:50.203 32598-32598/com.example.michi.trucki E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.michi.trucki, PID: 32598
java.lang.IllegalStateException: Could not execute method for android:eek:nClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:389)
at android.view.View.performClick(View.java:5675)
at android.view.View$PerformClick.run(View.java:22641)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6251)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:384)
at android.view.View.performClick(View.java:5675)
at android.view.View$PerformClick.run(View.java:22641)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6251)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
Caused by: java.lang.NumberFormatException: For input string: "0,1"
at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306)
at java.lang.Float.valueOf(Float.java:424)
at com.example.michi.trucki.Ladungssicherung.ergebnissFromel(Ladungssicherung.java:141)
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:384)
at android.view.View.performClick(View.java:5675)
at android.view.View$PerformClick.run(View.java:22641)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6251)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
12-11 20:40:50.208 905-2510/? W/ActivityManager: Force finishing activity com.example.michi.trucki/.Ladungssicherung
12-11 20:40:50.211 1444-1448/? E/GED: Failed to execute ioctl 3222824709, BridgeID(5), err(-1)
12-11 20:40:50.211 1444-1448/? E/GasService: Error on query GED info, err=1
 
A

Anzeige




Hier lernst du alle wichtigen Java-Grundlagen.
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben