Android 中的EditText控件部分文字格式改变方法详解 Android 开发中,EditText 控件是最常用的文本输入控件之一,但是它的文字格式改变却是一件很复杂的事情。例如,在EditText 控件中,我们想要改变部分文字的格式,例如将某些文字变粗、变斜或改变颜色等等。这篇文章将从实践角度出发,详细介绍 Android 中改变EditText 控件中部分文字格式的方法,并结合实例代码分析。 在Android 中,我们可以使用setTypeface 方法来改变EditText 控件中的文字格式,但是这种方法有一个缺陷,就是它只能将整个EditText 控件中的文字格式改变,而不能单独改变部分文字的格式。那么,如何改变EditText 控件中部分文字的格式呢? 答案是使用 SpannableString。SpannableString 是一个可以改变EditText 控件中部分文字格式的类,它可以将文字格式应用于EditText 控件中的部分文字。下面是一个使用 SpannableString 改变EditText 控件中部分文字格式的实例代码: ```java public class FragmentAddNote extends Fragment implements OnClickListener { //定义输入文本控件 private EditText edit_temp; //定义屏幕下面菜单栏--字体变粗按钮 private LinearLayout linearLayout_Bold; private ImageView img_Bold; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.main_addnote, container, false); initView(view); return view; } public void initView(View view) { //初始化屏幕下面菜单栏--字体变粗按钮 linearLayout_Bold = (LinearLayout)view.findViewById(R.id.linearLayout_Bold); linearLayout_Bold.setOnClickListener(this); img_Bold = (ImageView)view.findViewById(R.id.img_Bold); //初始化输入文本控件 edit_temp = (EditText)view.findViewById(R.id.edit_temp); edit_temp.addTextChangedListener(new editTextChangedListener()); } class editTextChangedListener implements TextWatcher{ //定义当前输入的字符数 private int CharCount = 0; //s:变化后的所有字符 public void afterTextChanged(Editable s) { //将光标点,移动到最后一个字 edit_temp.setSelection(s.length()); } //s:变化前的所有字符; start:字符开始的位置; count:变化前的总字节数;after:变化后的字节数 public void beforeTextChanged(CharSequence s, int start, int count,int after) { } //S:变化后的所有字符;start:字符起始的位置;before: 变化之前的总字节数;count:变化后的字节数 public void onTextChanged(CharSequence s, int start, int before, int count) { //判断当前输入的字符数,与文本框内的字符数长度是否一样,如果一样,则不进行操作 //主要用来跳出循环,当改变文字时,onTextChanged就认为有所变化,会进入死循环,所以采用这种方式结束循环 if(CharCount!=edit_temp.length()) { //将当前字符串的长度给输入字符串变量 CharCount = edit_temp.length(); //定义SpannableString,它主要的用途就是可以改变editText,TextView中部分文字的格式,以及向其中插入图像等 SpannableString ss = new SpannableString(edit_temp.getText().toString()); //将文字格式应用于EditText 控件中的部分文字 ss.setSpan(new StyleSpan(Typeface.BOLD), start, start + count, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); edit_temp.setText(ss); } } } } ``` 在上面的代码中,我们使用了 SpannableString 将文字格式应用于EditText 控件中的部分文字。我们首先获取EditText 控件中的文字,然后使用 setSpan 方法将文字格式应用于EditText 控件中的部分文字。这样,我们就可以改变EditText 控件中部分文字的格式。 改变EditText 控件中部分文字格式的方法有很多,但是使用 SpannableString 是最常用的方法。 SpannableString 可以将文字格式应用于EditText 控件中的部分文字,从而实现改变EditText 控件中部分文字的格式。
- 粉丝: 3
- 资源: 864
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助