首页 / 操作系统 / Linux / Android API之TextView.BufferType代码演示
TextView.BufferType并不是TextView的内部类,是一个枚举类型,设置有三个枚举值,分别为NORMAL,EDITABLE,SPANNAABLE。
对于EDITABLE,多用于在保存数据持久化,而SPANNAABLE则用于设置如TextView,EditText对象里的局部属性设置。而对于网络上关于EDITABLE之于NORMAL的差异,主要是说EDITABLE之后可以使用textview的append方法,有点类似String和StringBuffer的区别。但我在测试时发现,无论NORMAL还是EDITABLE,都可使用TextView的append方法。当然,我自身理解得也不透彻。对于EDITABLE数据持久化保存则使用了SharedPreferences,参考了Android的ApiDemos。
如下为代码范例:
(1)Activity类代码:
private TextView textView1,textView2,textView3; private EditText editText1,editText2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //main.xml中定义的UI组件 textView1=(TextView)findViewById(R.id.textView1); textView2=(TextView)findViewById(R.id.textView2); textView3=(TextView)findViewById(R.id.textView3); editText1=(EditText)findViewById(R.id.editText1); editText2=(EditText)findViewById(R.id.editText2); //设置textView1为TextView.BufferType.NORMAL textView1.setText(textView1.getText(),TextView.BufferType.NORMAL); textView1.append(" Append from textView1"); //设置textView2为TextView.BufferType.EDITABLE textView2.setText(textView2.getText(), TextView.BufferType.EDITABLE); textView2.append(" Append from textView2"); //设置textVIew3中Text内容的起始和终止需处理字符的索引位置 int start=(textView3.getText()).toString().indexOf("i"); int end=(textView3.getText()).toString().indexOf("V"); //设置textView3为TextView.BufferType.SPANNABLE textView3.setText(R.string.textView3, TextView.BufferType.SPANNABLE); Spannable span=(Spannable)textView3.getText(); span.setSpan(newBackgroundColorSpan(Color.BLUE), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(newStyleSpan(Typeface.BOLD_ITALIC),start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //设置editText1为TextView.BufferType.SPANNABLE editText1.setText(editText1.getText(),TextView.BufferType.SPANNABLE); Spannable span1=(Spannable)editText1.getText(); span1.setSpan(newBackgroundColorSpan(Color.RED), 2, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); //修改editText2内容后,将通过SharedPreferences保存,保证程序重启后数据持久存在 SharedPreferences prefs=getPreferences(0); String restore=prefs.getString("text", null); if(restore!=null){