Как получить текст и смайлик из Edittext в строку? - PullRequest
5 голосов
/ 26 августа 2011

Как получить текст и смайлик из текста редактирования в строку?

Используя следующий код, я добавил «Смайлик / эмодзи» в текст редактирования, но как получить текст / смайлик из текста редактирования в формат строки.

Ответы [ 2 ]

8 голосов
/ 19 сентября 2011

Пожалуйста, используйте следующую функцию.

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;
        }

отслеживание для кода эмоций ...

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).....};

и settext с использованием

tv_msg_send.setText(getSmiledText(getApplicationContext(), edt_msg.getText().toString()));
0 голосов
/ 13 сентября 2011

Использовать Html.toHtml (составной текст)

как:

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

edit: здесь я копаюсь в темноте, но неужели вам нужно текстовое (строковое) представление вашего смайлика?

как у вас:

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

и вы хотите:

String cs = ":)";

это верно? если нет, то мой предыдущий ответ дает вам техническое представление вашего HTML-кода в виде строки

...