android如何改变editText控件中部分文字的格式

android如何改变editText控件中部分文字的格式,第1张

概述我们在使用editText控件的时候,会遇到这样的一问题,就是我在输入时候,当我选择让文字变粗时,我输入的文字就会变粗,当我去掉选择时,再输入文字时,文字就是正常情况了。

我们在使用editText控件的时候,会遇到这样的一问题,就是我在输入时候,当我选择让文字变粗时,我输入的文字就会变粗,当我去掉选择时,再输入文字时,文字就是正常情况了。

这种情况,大家一般认为很简单啊。editText中不是有setTypeface这个方法吗。只要使用edit_temp.setTypeface(Typeface.defaultFromStyle(Typeface.norMAL));就可以了。可是问题来了。这种方法,是将editText中所有的文字的格式全变了。可是我想要的格式是这样的:  正常格式变粗的格式正常的格式

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 before,int count) {    //判断当前输入的字符数,与文本框内的字符数长度是否一样,如果一样,则不进行 *** 作    //主要用来跳出循环,当改变文字时,onTextChanged就认为有所变化,会进入死循环,所以采用这种方式结束循环    if(CharCount!=edit_temp.length())    {       //将当前字符串的长度给输入字符串变量     CharCount = edit_temp.length();         //定义SpannableString,它主要的用途就是可以改变editText,TextVIEw中部分文字的格式,以及向其中插入图片等功能     SpannableString ss = new SpannableString(s);         if(linearLayout_Bold.getTag().toString().equals("1"))     {           ss.setSpan(new StyleSpan(Typeface.BolD_ITAliC),start,s.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);      edit_temp.setText(ss);     }    }     }    }  @OverrIDe  public voID onClick(VIEw v) {   switch (v.getID()) {   case R.ID.linearLayout_Bold:    if(linearLayout_Bold.getTag().toString().equals("0"))    {     img_Bold.setimageResource(R.drawable.ic_editor_bar_rtf_bold_on);     linearLayout_Bold.setTag("1");     //edit_temp.setTypeface(Typeface.defaultFromStyle(Typeface.BolD));    }else if(linearLayout_Bold.getTag().toString().equals("1"))    {     img_Bold.setimageResource(R.drawable.ic_editor_bar_rtf_bold);     linearLayout_Bold.setTag("0");        //edit_temp.setTypeface(Typeface.defaultFromStyle(Typeface.norMAL));    }    break;   default:    break;   }  } } 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!

总结

以上是内存溢出为你收集整理的android如何改变editText控件中部分文字的格式全部内容,希望文章能够帮你解决android如何改变editText控件中部分文字的格式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存