2011-08-26 10 views
5

Jak uzyskać tekst i emotikony z edytora tekstu w String?Jak uzyskać tekst i emotikony z Edittext na ciąg?

Używanie następującego kodu I to Dodawaj emotikony/emotikony w Edittext, ale jak uzyskać tekst/buźkę z editekstu do formatu ciągu.

ImageGetter imageGetter = new ImageGetter() { 
     public Drawable getDrawable(String source) { 
      Drawable d = getResources().getDrawable(
        R.drawable.happy); 
      d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 
      return d; 
     } 
    }; 

    cs = Html.fromHtml(
      "<img src='" 
        + getResources() 
          .getDrawable(R.drawable.happy) 
        + "'/>", imageGetter, null); 
    edttxtemoji.setText(cs); 
+0

robie coś podobnego TUTAJ !!! http://stackoverflow.com/questions/16768930/implementations-of-emoji-emoticon-view-keyboard-layouts – toobsco42

Odpowiedz

0

Zastosowanie Html.toHtml (tekst łączony)

jak:

String myString = Html.toHtml(cs); 
System.out.println(myString); 

EDIT: iam kopania w ciemności tutaj, ale to może być chcesz tekstowy (string) reprezentację twojego Smillie?

jak ty mają:

cs = Html.fromHtml(
      "<img src='" 
        + getResources() 
          .getDrawable(R.drawable.happy) 
        + "'/>", imageGetter, null); 

i chcesz:

String CS = ":)";

czy to prawda? jeśli nie, moja poprzednia odpowiedź daje ci techniczną reprezentację String twojego kodu html

+0

Już próbowałem, ale to nie działa. –

+0

Jak to nie działa? – Michele

+0

Te 2 wiersze dają następujące wyniki wyjściowe w formacie ciągu znaków.

8

Proszę użyć następującej funkcji.

public static Spannable getSmiledText(Context context, String text) { 
      SpannableStringBuilder builder = new SpannableStringBuilder(text); 
      int index;for (index = 0; index < builder.length(); index++) { 
      for (Entry<String, Integer> entry : emoticons.entrySet()) { 
       int length = entry.getKey().length(); 
       if (index + length > builder.length()) 
       continue; 
       if (builder.subSequence(index, index + length).toString().equals(entry.getKey())) { 
       builder.setSpan(new ImageSpan(context, entry.getValue()), index, index + length, 
        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
       index += length - 1; 
       break; 
       } 
      } 
      } 
      return builder; 
     } 

następującego kodu emocje ...

private static final HashMap<String, Integer> emoticons = new HashMap<String, Integer>(); 
     static { 
      emoticons.put("8-)", R.drawable.s1); 
      emoticons.put(":-&", R.drawable.s2); 
      emoticons.put(">:-)", R.drawable.s3).....}; 

i setText użyciu

tv_msg_send.setText(getSmiledText(getApplicationContext(), edt_msg.getText().toString())); 
+0

Ten kod nie dostanie emotikonów Jeśli użyję Twojego kodu, tekst "obj" to Zwróć, więc nie jest to dla mnie użyteczne. –

+0

@dipak :: ale dostałem doskonały tekst do ustawienia buźki w widoku tekstowym. i jeszcze jedna rzecz, którą próbowałem użyć twojego kodu kilka razy przed tym postem, ale nie mogę dostać solution.now Nie używam metody ImageGetter zamiast tego, że używam "addTextChangedListener" i zmieniając kod smiley z obrazem, dzwoniąc prosto "getSmiledText" powyżej. więc spróbuj ponownie, może ci pomóc – amity

+0

Użyłem twojego kodu w moim projekcie, ale to mi nie pomoże. dzięki za pomoc. –