Android API之TextView.BufferType代码演示

2014-11-24 09:04:43 · 作者: · 浏览: 1

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



//设置textView1TextView.BufferType.NORMAL


textView1.setText(textView1.getText(),TextView.BufferType.NORMAL);


textView1.append(" Append from textView1");



//设置textView2TextView.BufferType.EDITABLE


textView2.setText(textView2.getText(), TextView.BufferType.EDITABLE);


textView2.append(" Append from textView2");



//设置textVIew3Text内容的起始和终止需处理字符的索引位置


int start=(textView3.getText()).toString().indexOf('i');


int end=(textView3.getText()).toString().indexOf('V');



//设置textView3TextView.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);



//设置editText1TextView.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){



//设置editText2TextView.BufferType.EDITABLE


editText2.setText(restore,TextView.BufferType.EDITABLE);



intstart=prefs.getInt("start", -1);


intend=prefs.getInt("end", -1);



if(start !=-1 && end!=-1){


editText2.setSelection(start, end);


}


}


}


@Override


protected void onPause() {


// TODO Auto-generated method stub


super.onPause();


SharedPreferences.Editor editor=getPreferences(0).edit();


editor.putString("text", editText2.getText().toString());


editor.putInt("start", editText2.getSelectionStart());


editor.putInt("end", editText2.getSelectionEnd());


editor.commit();


}