2016-06-14 5 views
0

Ich bin derzeit Lernen Android und kam über mit diesem:Erste Intent vom Typ Bild Verwirrung

if (intent.getType().indexOf("image/") != -1) { 
    // Handle intents with image data ... 
    } else if (intent.getType().equals("text/plain")) { 
    // Handle intents with text ... 

Ich verstehe nicht, warum es intent.getType().indexOf("image/")!=-1 ist, soweit ich verstehe es verwendet wird, zu wissen, dass, wenn die Intent enthält Daten vom Typ Image (Korrigiere mich wenn falsch). Aber warum nicht benutzt wie es ist mit Typ "text/plain" verwendet. Warum verwendet es indexOf und warum es gegen -1 überprüft.

Verzeihung, wenn die Frage doch keinen Sinn macht. Aber wie gesagt, ich lerne gerade und habe nirgends viel Information darüber gefunden.

Antwort

1

Meine Vermutung ist, dass wer auch immer den Code schrieb, dies verwendet, um zu versuchen, alles zusammenzubringen, beginnend mit image/. Mit wäre einfacher und zuverlässiger.

1

getType einen MIME-Typen zurückgeben wie "image/png" "text/plain" "application/json" usw.

Der indexOf Anruf zu sehen ist, wenn die Zeichenfolge "image /" irgendwo in dem MIME-Typ existiert - oder mehr praktisch, wenn der Typ ein Bild ist. Dem Autor ist es egal, ob es ein JPEG ("image/jpeg") oder ein png ("imgage/png") etc. ist, nur dass es ein Bild ist.

Die Überprüfung gegen -1 ist, weil wenn der "image /" Teilstring ist nicht gefunden, das wird der Rückgabewert sein.

Wenn es sich nicht um ein Bild handelt, prüfen sie, ob es sich um reinen Text handelt.

Dies ist wahrscheinlich nicht der sauberste Weg, um dies zu erreichen, aber es macht die Arbeit erledigt.