2016-07-06 8 views
2

Ich versuche, eine BMI-Rechner-App zu erstellen, jedoch scheint es ein Problem mit der Verwendung von Absicht und die Methode getIntExtra(), wie ich immer den Standardwert und nicht die Wert, den ich von einer anderen Aktivität übernommen habe. Unten ist mein Code für die erste AktivitätAndroid BMI Calculator App Fehler in der Absicht

calculate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(getApplicationContext(), SecondActivity.class); 

      int weight = Integer.parseInt(weightText.getText().toString()); 
      int height = Integer.parseInt(heightText.getText().toString()); 

      intent.putExtra(USER_WEIGHT_EXTRA, weight); 
      intent.putExtra(USER_HEIGHT_EXTRA, height); 
      startActivity(intent); 
     } 
    }); 

Zweite Aktivität der Grund für Doppel height2 = (double)height/100 ist von cm bis m zu konvertieren.

result = (TextView)findViewById(R.id.result); 
    todo = (TextView) findViewById(R.id.todo); 

    Intent intent = getIntent(); 

    int weight = intent.getIntExtra("USER_WEIGHT_EXTRA", extraInt); 
    int height = intent.getIntExtra("USER_HEIGHT_EXTRA", extraInt); 

    double height2 = (double)height/100; 
    double BMI = (weight*1.0)/(height2*height2); 


    if (BMI < 20.0) { 
     result.setText("You are: UNDERWEIGHT"); 
     todo.setText("You Should EAT MORE"); 
    } else if (BMI > 20.0 && BMI < 25.0) { 
     result.setText("You are: NORMAL WEIGHT"); 
     todo.setText("You Should keep STAYING HEALTHY"); 
    } else if (BMI > 25) { 
     result.setText("You are: OVERWEIGHT"); 
     todo.setText("You Should EXERCISE MORE"); 
    } 
} 

Ich bin wirklich auf dieses Problem fest. Vielen Dank euch allen!

+0

tut 'USER_WEIGHT_EXTRA = "USER_WEIGHT_EXTRA"'? dasselbe für die Höhe. Sie verwenden Variablen in Ihrer ersten Aktivität und String-Literale in der zweiten, könnte das Problem sein – ElefantPhace

+0

der USER_WEIGHT_EXTRA in der ersten Aktivität ist eine Zeichenfolge-Variable, die die Zeichenfolge "USER_WEIGHT_EXTRA" – hwhong

+0

enthält, so dass die Antwort auf meine Frage ja ist. – ElefantPhace

Antwort

0

In erster Aktivität

Intent in = new Intent(this, OtherActivity.class); 
      in.putExtra("USER_WEIGHT_EXTRA", weightText.getText().toString()); 
      in.putExtra("USER_HEIGHT_EXTRA", heightText.getText().toString()); 
      startActivity(in);` 

für OTHER

Bundle bundle = getIntent().getExtras(); 

     int weight = Integer.parseInt(bundle.getString("USER_WEIGHT_EXTRA")); 
     int height = Integer.parseInt(bundle.getString("USER_HEIGHT_EXTRA")); 
+2

danke! es funktionierte! – hwhong

+0

Froh, dass es geholfen hat, bitte akzeptiere und schließe den Thread –