Build.name liefert falsche Informationen?

  • 3 Antworten
  • Neuester Beitrag
Diskutiere Build.name liefert falsche Informationen? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
S

Saruman

Neues Mitglied
Hallo Community!

Ich wollte mal ein bisschen mit ein paar Funktionalitäten rumspielen, die ich bisher noch nicht benutzt habe...

Ich arbeite mit Android-SDK-Eclipse.

Ziel des Codes ist es je nach model-name ein bestimmtes layout zu laden.

Hier der Code:
Code:
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    final String model = Build.MODEL;

    if(model == "sdk")
    {
        setContentView(R.layout.activity_test_one);
    } else
    {
        setContentView(R.layout.activity_test_two);
    }
Toast.makeText(getApplicationContext(), model, Toast.LENGTH_SHORT).show();
}
Der Toast gibt mir als Namen "sdk" aus, allerdings wird das if statement nicht ausgeführt, statt dessen wird der else-part ausgeführt.

Weiß jemand woran das liegen könnte?
 
DagobertDokate

DagobertDokate

Experte
Ohne groß deinen Code angeguckt zu habe... aber was gleich ins Auge fällt ist der String vergleich mit ==.
Strings vergleicht man mit equals.

lg. Dagobert
 
S

Saruman

Neues Mitglied
Was kann ich sagen?

Ja, das hat das Problem gelöst... sorry das ich an so einen Nippes wieder mal nicht gedacht habe :mad:

Danke :)
 
A

amfa

Experte
Erklärung:
"==" vergleicht ob 2 Objekte identisch sind.
Du hast aber 2 verschiedene Objekte einen String "model" und einen String "sdk".
Somit sind die nicht gleich.
"==" ist in Java meistens nur sinnvoll für Zahlen, für alles andere ist equals() immer die bessere Wahl.