温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

android应用如何改变editText中文字的格式

发布时间:2020-11-26 15:41:28 来源:亿速云 阅读:209 作者:Leah 栏目:移动开发

这篇文章将为大家详细讲解有关android应用如何改变editText中文字的格式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

使用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 start, 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中文字的格式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI