2014-09-18 3 views
0

Я реализую упоминания, как в twitter @username. Но упоминания не могут быть напечатаны, только выбранные из MultiAutoCompleteTextView.Android Spannable увольнение после редактирования

Я создаю spannable с синим цветом текста на treminateToken

Spannable sp = new SpannableString(text + " "); 
sp.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

Но проблема в том, что пользователь может редактировать этот текст. Как сделать эту привязку недоступной для редактирования? Чтобы удалить весь диапазон, когда пользователь нажимает backspace? Или, по крайней мере, изменить цвет назад на черный, если он был отредактирован.

ответ

0

Попробуйте

Проденьте строку это ниже метод, используя ключ слушателя вашего editext

public void displayText(String s) 
{ 
    String ss[]=s.split(","); 
    for(int i=0;i<ss.length;i++) 
    { 
     final SpannableStringBuilder sb = new SpannableStringBuilder(); 
     TextView tv = createContactTextView(ss[i]); 
     BitmapDrawable bd = (BitmapDrawable) GlobalMethods.convertViewToDrawable(tv); 
     bd.setBounds(0, 0, bd.getIntrinsicWidth(),bd.getIntrinsicHeight()); 

     sb.append(ss[i] + ","); 
     sb.setSpan(new ImageSpan(bd), sb.length()-(ss[i].length()+1), sb.length()-1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     contact.setText(sb);//your edit text here 
    } 
} 

набор текста стиль

public TextView createContactTextView(String text) 
    { 
     TextView tv = new TextView(this); 
     tv.setText(text); 
     tv.setTextSize(25); 
     tv.setBackgroundResource(R.drawable.design); 
     return tv; 
    } 

Выход: если пользователь пытаются удалить текст, который он удалит весь текст

Смежные вопросы