2015-10-22 22 views
7

Jak mogę to zrobić? Jestem całkiem nowym użytkownikiem Javy i Androida i mam problem opisany powyżej. Kiedy wkleję emoji do pliku xml, pokazuje on biały kwadrat i kolejną dziwną postać, która "kopiuje" następną postać.Jak mogę umieścić jakiś lub inny emoji w ciągu XML?

Każdy pomysł, jak to rozwiązać?

+0

Czy używasz Android Studio? – CurlyCorvus

+0

@CurlyCorvus Yep – Donfo

+0

[Obejście problemu polega na kodowaniu ciągów znaków emoji w pliku Java.] (Http://stackoverflow.com/a/43176048/3681880) – Suragch

Odpowiedz

-2

Spróbuj użyć tej biblioteki - emoji-java
wiem, że chcesz się sposób XML, a to jest Java
To może pomóc

Przykład

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

Sugeruje się, aby kodowanie emoji było zaimportowane, może działać ... Postaram się jak najszybciej wypróbować bibliotekę. – Donfo

+0

Wielkie dzięki, biblioteka jest idealna i prosta w użyciu. Będę musiał naprawić główny algorytm mojego projektu, aby teraz używać łańcuchów zamiast znaków. Okazuje się, że naprawdę nie potrzebuję hardcode znaków, ponieważ wystarczy zastąpić je odpowiednimi aliasami w pliku xml. – Donfo

+0

Dane wyjściowe nadal powodują awarię mojej aplikacji testowej z systemem Android 5.1. – Suragch

6

Można umieścić emotikony w sposób XML, a kwadraty są po prostu sposobem edytora do renderowania znaków, których nie mogą rozpoznać, podobnie jak wszystkie inne znaki, można określić znak przez jego wartość UTF8.

Na przykład ma wartość char 128515, więc można użyć &#128515;, aby ją określić. Jest bardzo podobny do sposobu, w jaki należy użyć &lt;, aby określić literał "<" w xml.

JEDNAK od napisania tej odpowiedzi, używanie tych tokenów w (na przykład) ciągach.xml jako stałych łańcuchowych spowoduje awarię aplikacji, z błędem przechodzącym aż do poziomu JNI w aplikacji na Androida (Kod C++).

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

nie jestem uprawniony do powiedzenia, ile może to ograniczyć użycie emotikony w Androida w ogóle, ale mogę powiedzieć na pewno, że nie można dodać emotikony do android plików xml (bez dokonywania awarie aplikacji, to jest).

+1

Obsługa emoji w języku XML działa tak samo jak w systemie Android 7. (ale Android 5 nadal ulega awarii.) – Suragch

0

Można emotikonów przechowywać w pliku XML jako ciąg używając #EmojiCodeSheet bibliotekę, wszystkie emotikony w formacie ciągu wymieniono here


Innym rozwiązaniem jest przechowywanie emotikony jako statyczne stałe w plikach java jak pokazano here


czytaj this complete answer dla szczegółów

Powiązane problemy