我在twitter @username中实现了提及。但不能键入提及,只能从MultiAutoCompleteTextView中选择。
我在treminateToken上创建蓝色文本颜色的spannable
Spannable sp = new SpannableString(text + " ");
sp.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);但问题是用户可以编辑此文本。如何使此快照不可编辑?要在用户按backspace时删除整个范围吗?或者至少将颜色改回黑色(如果它已经被编辑过)。
发布于 2014-09-25 15:20:28
尝尝这个
使用editext的key listener将字符串传递给下面的方法
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;
}输出:如果用户尝试删除文本,则会删除整个文本
https://stackoverflow.com/questions/25916633
复制相似问题