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

 更新时间:2017年03月06日 08:40:38   作者:ganchuanpu  
本文主要介绍了android改变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 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 App安装列表获取方法(实践方案)

    Android App安装列表获取方法(实践方案)

    文章介绍了Android 11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotlin代码示例,建议在Android 15及以上版本中使用action方式获取应用列表,感兴趣的朋友一起看看吧
    2025-03-03
  • 详解Android获取系统内核版本的方法与实现代码

    详解Android获取系统内核版本的方法与实现代码

    这篇文章主要介绍了详解Android获取系统内核版本的方法与实现代码的相关资料,这里提供了具体实现获取内核的方法,需要的朋友可以参考下
    2017-07-07
  • 深入理解Android MD5数据加密

    深入理解Android MD5数据加密

    在Android中需要对各种数据进行加密的操作,比如用户短信备份的数据加密、用户账户登陆的密码加密以及应用于服务器连接传递重要数据的加密,用处非常的多,所以今天来总结一下MD5加密算法。
    2016-09-09
  • Android编程实现只显示图片一部分的方法

    Android编程实现只显示图片一部分的方法

    这篇文章主要介绍了Android编程实现只显示图片一部分的方法,涉及Android针对图片的局部显示操作技巧,需要的朋友可以参考下
    2016-10-10
  • React Native与Android 原生通信的方法

    React Native与Android 原生通信的方法

    本篇文章主要介绍了React Native与Android 原生通信的方法,主要是分享原生模块与JS传递数据的几种方式,非常具有实用价值,需要的朋友可以参考下
    2018-05-05
  • Jetpack Compose实现点击事件click的多种方法

    Jetpack Compose实现点击事件click的多种方法

    这篇文章主要介绍了Jetpack Compose实现点击事件的多种方法,Jetpack Compose是一款基于Kotlin的声明式UI工具包,可以方便地创建漂亮的用户界面,下面我们就来看看Jetpack Compose添加点击事件都可以怎么实现
    2024-02-02
  • Android实现照片墙效果的实例代码

    Android实现照片墙效果的实例代码

    Android实现照片墙效果的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上,这些照片可以是手机本地中存储的,也可以是从网上下载的
    2018-05-05
  • Android应用开发的版本更新检测升级功能实现示例

    Android应用开发的版本更新检测升级功能实现示例

    本文对Android版本更新的知识做全面的总结,主要包括开发中版本的设置,如何检测本程序的版本,版本的更新判断和显示,新版本程序的安装
    2022-04-04
  • Android带圆形数字进度的自定义进度条示例

    Android带圆形数字进度的自定义进度条示例

    本篇文章主要介绍了Android带圆形数字进度的自定义进度条示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Android 自定义弹出菜单和对话框功能实例代码

    Android 自定义弹出菜单和对话框功能实例代码

    Android 开发当中,可能会存在许多自定义布局的需求,比如自定义弹出菜单(popupWindow),以及自定义对话框(Dialog)。下面通过本文给大家介绍Android 自定义弹出菜单和对话框功能实例代码,感兴趣的朋友一起看看吧
    2017-08-08

最新评论