2016-07-03 2 views
2

나는 xml을 파싱 할 때 얻은 문자열 \ud83d\ude03을 포함하는 변수 (이모 지)를 가지고 있습니다. 이모티콘 인코딩입니다.안드로이드 인쇄 문자열을 사용하여 Emojis

editText.setText("\ud83d\ude03") 

출력 웃는입니다 :이 수행 할 때

editText.setText(emoji) 

출력은 그러나 \ud83d\ude03

이다 : 나는 다음과 같은 방식으로 인쇄 할 때 문제입니다. 이 문제를 해결할만한 방법이 있습니까? 문제는 내 백 슬래시가 도망 가고 있다는 것입니다. xml 파일을 변경할 수 없습니다. 따라서 Java에서 문자열을 아무런 유용성없이 변환하려고했습니다.

+0

당신이 시도 것을, 당신은 자바에서 문자열 변환 시도했습니다 말, 당신은 //와/모두 바꾸기 위해 노력했다? –

+0

네, 그랬어요. 내 문자열에 추가 따옴표가 붙어 있다는 것을 깨달았습니다. –

답변

4

이 코드 :

String smiley = "\ud83d\ude03"; 
EditText et = (EditText) findViewById(R.id.editText); 
et.setText(smiley); 

TextView tv = (TextView) findViewById(R.id.textView); 
tv.setText(smiley); 

레이아웃 파일 : 당신이 보는대로

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Text" 
    android:id="@+id/textView" 
    android:layout_marginTop="150dp" 
    android:layout_marginLeft="50dp"/> 


<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/editText" 
    android:layout_below="@+id/textView" 
    android:layout_alignLeft="@+id/textView" 
    android:layout_alignStart="@+id/textView"/> 

그것은 작동합니다. 오류는 emoji 변수에 있어야합니다.

Solution

+0

변수에 여분의 따옴표가있는 문제가있었습니다. 감사합니다 –

+0

답변을 upvote하는 것을 잊지 마시고 가장 좋은 대답을 선택하십시오 '\ ud83d \ ude03' – user3486470

0

그래서 xml을 구문 분석하고 "\ ud83d"라는 문자열을 6 자로 보냅니 까? 그게 무엇을 해야하는지. 이 문제를 해결하려면 문자열을 직접 구문 분석하고 이러한 시퀀스를 올바른 유니 코드 포인트로 변환해야합니다. 또는 서버가 이스케이프하지 않고 유니 코드 포인트를 보내야합니다.

관련 문제