Android-Zwischenablage-code, der funktioniert auf alle API-levels
Zwischenablage-code, der arbeitet für die API-levels < 11 stürzt auf Geräte mit API-Level >= 11.
Die Zwischenablage-code, die für die API-Ebene >= 11 stürzt auf Geräte mit API-Level < 11.
Kann ich nicht kompilieren von code für beide Versionen, weil Sie widersprüchliche import von Anforderungen.
Braucht man:
importieren android.text.ClipboardManager;
während die andere Bedürfnisse:
importieren android.Inhalt.ClipboardManager;
Sicherlich gibt es eine Möglichkeit, code schreiben, dass die Arbeit auf beiden Seiten des API-level 11. Ich kann einfach nicht herausfinden.
***Bearbeitet (Da kann ich keine Antwort auf meine eigene Frage) *******
Habe das problem gefunden. Die exception-message sagt, "Can' T create handler inside thread nicht genannt Looper.prepare()."
Anscheinend habe ich durch springen einige mehr Reifen, da ich mich dieser code ausgeführt von einem Async task.
onPostExecute()
Ihrer AsyncTask
.InformationsquelleAutor Xarph | 2012-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses Beispiel-Projekt klappt das ganz schön auf API-Ebene vor und nach dem 11. Ich habe gerade getestet es auf Android 2.3 (Nexus One) und Android 4.0 (Nexus S).
Ist nicht verwunderlich. Wenn Sie beziehen sich auf Klassen oder Methoden, die nicht in älteren Versionen von Android, erhalten Sie eine
VerifyError
oder ähnliche Abstürze.Nicht wirklich.
Funktioniert auf allen API-levels.
Hinzugefügt wurde, auf API-Ebene 11. Wenn Ihre app nur auf API Level 11 oder höher, verwenden Sie diese Klasse (die Signaturen sind alle gleich IIRC).
Ok yah, dein code funktioniert, aber es zeigt veraltete Methode Warnung. Wird es ein problem sein, in Zukunft??? Ich meine, wird die Methode gelöscht werden, für immer in der Zukunft ???
stackoverflow.com/a/11012443/166949
InformationsquelleAutor CommonsWare
Ich vor kurzem konfrontiert, die ein ähnliches problem.
Hier ist, wie ich behandelt es.
Ich bin mir nicht ganz sicher, wenn der erste if-block notwendig ist. Aber ich würde lieber nicht eine chance 🙂
label
hier?ist für den Anwender sichtbare Beschriftung für die clip Daten. Diese
label
Bereich verwertet wird, vor allem durch die Zwischenablage-manager-apps wie der Titel des Clips, der Daten, die kopiert wird. Weitere Informationen finden Sie unter: developer.android.com/reference/android/content/..., java.lang.CharSequence)InformationsquelleAutor Ashok Felix
Vermeiden Ausnahme
-> erstellen Sie einfach die
ClipboardManager
einmal beim Start, zum Beispiel in IhreronCreate()
Methode und verwenden Sie es jederzeit in eine separate Funktion.getestet auf 2.3.3 und 4.0.3:
InformationsquelleAutor Christophe LB
Schreiben Sie selbst Ihre eigene Zwischenablage compat-Klasse, zum Beispiel:
InformationsquelleAutor ssuukk