2015-10-22 17 views
7

Come posso fare questo? Sono abbastanza nuovo per Java e Android e ho il problema sopra descritto. Quando incollo l'emoji nel file xml mostra un quadrato bianco e un altro carattere strano che "copia" il prossimo carattere.Come posso inserire una o qualsiasi altra emoji in una stringa XML?

Qualche idea su come risolvere questo problema?

+0

Stai usando Android Studio? – CurlyCorvus

+0

@CurlyCorvus Sì – Donfo

+0

[Una soluzione consiste nel codificare le stringhe di emoji in un file Java.] (Http://stackoverflow.com/a/43176048/3681880) – Suragch

risposta

-2

Provate ad usare questa libreria - emoji-java
So che vuoi un modo XML, e questo è Java
Essa può aiutare

Esempio

String str = "An awesome string with a few emojis!"; 
String result = EmojiParser.parseToAliases(myString); 
System.out.println(myString); 
// Prints: 
// "An 😀awesome 😃string with a few 😉emojis!" 
+0

Quindi suggerisci di codificare gli emoji, potrebbe funzionare ... Darò una prova alla biblioteca il prima possibile. – Donfo

+0

Grazie mille, la libreria è perfetta e semplice da usare. Dovrò correggere l'algoritmo principale del mio progetto per usare ora le stringhe invece dei caratteri. Ho scoperto che non ho davvero bisogno di hardcode i caratteri in quanto è sufficiente per sostituirli con gli alias corrispondenti nel file xml. – Donfo

+0

L'uscita arresta ancora la mia app di prova con Android 5.1. – Suragch

6

È possibile inserire emoji in un XML, e le caselle sono solo il modo dell'editor per il rendering di caratteri che non è in grado di riconoscere, come tutti gli altri caratteri, puoi invece specificare il carattere con il suo valore UTF8.

Ad esempio, ha il valore char di 128515, quindi è possibile utilizzare &#128515; per specificarlo. È molto simile al modo in cui è necessario utilizzare &lt; per specificare un letterale '<' in un xml.

TUTTAVIA, al momento di scrivere questa risposta, l'utilizzo di questi token in (per esempio) strings.xml come costanti stringa causerà l'arresto anomalo dell'applicazione, con un errore fino al livello JNI dell'applicazione Android (Codice C++).

JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xf0

io non sono qualificato per dire quanto questo può limitare l'uso di emoji in Android in generale, ma posso dire per certo che non è possibile aggiungere emoji in file XML Android (senza fare il vostro arresto anomalo dell'app, ovvero).

+1

Il supporto Emoji in XML sembra funzionare a partire da Android 7. (Ma Android 5 si blocca ancora). – Suragch

0

È possibile memorizzare emoji nel file XML come stringa utilizzando #EmojiCodeSheet biblioteca, tutte le emoji in formato stringa vengono elencati here


Un'altra opzione è la memorizzazione emoji costante come statica in file java come mostrato here


leggi this complete answer per dettagli