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

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

时间: 2024-10-23 22:13:11

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

android中textview控件中的文字的位置是如何调整的

问题描述 android中textview控件中的文字的位置是如何调整的 android中textview控件中的文字的位置是如何调整的 像缩进 靠左 居中 这些概念有吗 解决方案 http://jingyan.baidu.com/article/c85b7a640641dc003aac9562.html 百度很多 解决方案二: 有,而且还有更多属性 解决方案三: 位置可以用android:gravity控制,比如: android:gravity="center" 缩进可以用andr

Android如何禁止向EditText控件中输入内容详解

前言 在Android开发中经常会遇到EditText控件,而在App开发过程中.遇到了这样一个问题.那就是Android EditText控件如何禁止往里面输入内容? 最开始找到修改版解决方法.但是当想输入的时候就有问题了.可以参考一下.但不建议这样写 EditText editText = (EditText) findViewById(R.id.editText1); editText.setKeyListener(null); 看到这个问题大家可能有点奇怪了.EditText的功能不就是

asp.net中如何改变CheckBox控件中方格的大小

问题描述 同上 解决方案 解决方案二:HTML:<inputclass="bigcheck"type="checkbox"name="agree"> CSS:input.bigcheck{height:50px;width:50px;} 解决方案三:一楼的正确,呵呵解决方案四:1楼这个不错解决方案五:引用1楼only_endure的回复: HTML:HTMLcode<inputclass="bigcheck"

Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)_Android

在5.2.1节和5.2.2节介绍了<a>标签以及TextView自动识别的特殊文本(网址.电话号.Email等),这些都可以通过单击来触发不同的动作.虽然这些单击动作已经可以满足大多数需要了,但如果读者想在单击链接时执行任意自定义的动作,那么本节的内容非看不可. 现在让我们使用5.2.1节介绍的方法重新查看Html.java文件的内容,随便找一个处理Html标签的方法,例 如,endA方法.该方法用于处理</a>标签.我们会发现在该方法中如下的语句. text.setSpan(ne

Android实现EditText控件禁止输入内容的方法(附测试demo)_Android

本文实例讲述了Android实现EditText控件禁止输入内容的方法.分享给大家供大家参考,具体如下: 问题: android如何实现EditText控件禁止往里面输入内容? 修改版解决方法: EditText editText = (EditText) findViewById(R.id.editText1); editText.setKeyListener(null); 看到这个问题大家可能有点奇怪了,EditText的功能不就是往上面写入内容吗? 再者,如果真要禁止输入文本,在布局文件中

Android开发技巧:在TextView控件中单击链接弹出Activity

发一些<Android开发权威指南>的章节给大家尝尝鲜       在5.2.1节和5.2.2节介绍了<a>标签以及TextView自动识别的特殊文本(网址.电话号.Email等),这些都可以通过单击来触发不同的动作.虽然这些单击动作已经可以满足大多数需要了,但如果读者想在单击链接时执行任意自定义的动作,那么本节的内容非看不可.      现在让我们使用5.2.1节介绍的方法重新查看Html.java文件的内容,随便找一个处理Html标签的方法,例 如,endA方法.该方法用于处理

关于Internet Explorer_server控件中文字选中的问题

问题描述 谁能跟我讲讲如何判断InternetExplorer_server控件中的文字是否被选中呢?满度娘的都是如何取这个控件里的内容,其它资料都完全找不到,是要截获什么消息吗?还是有什么巧妙的方法可以判断呢?请不吝赐教~~ 解决方案 解决方案二:补充一下,就是按住鼠标拖拉后选中,文字就变成蓝色的底色了,怎么判断呢?解决方案三:Edit模式?解决方案四:看看这篇文章:RetrievingSelectedTextfromWebbrowsercontrolin.net(C#)VC应该可以使用同样的

求助!!页面报表控件中禁用复制粘贴功能的方法!!

问题描述 如图中所示,aspx页面可以屏蔽复制功能,但里面的报表控件中的文字依然可以全选并复制,求大人提供解决方案长期在线等解答! 解决方案 解决方案二:求大神指点迷禁解决方案三:貌似不可以,因为控件本身的代码里面有<noscript>标签.另外,别人打开你的网页,另存后,想怎么操作都可以.所以最好是通过权限管理来控制能访问报表的用户.解决方案四:客户的要求是,设计师不能拷贝报表中的内容,只能打印....解决方案五:太多功能都实现了,然后卡在了这最后一项功能上,都要验收了,难道还要再换方案吗.

vs2010 winform 程序开发 怎么在richtextbox控件中设置二级标题

问题描述 我的思路是这样的,做一个rtf格式的文件,在里面设置好正文,一级标题,二级标题,三级标题格式,然后在richTextbox控件中读取这个rtf格式的文件,我现在要往这个richtextbox控件中写入文本,怎样设置成设定好的一级标题或二级标题的格式 解决方案 解决方案二:百度rtf格式文件解决方案三:引用1楼sxldfang的回复: 百度rtf格式文件 搜不到,我现在要往这个richtextbox控件中写入文本,怎样设置成设定好的一级标题或二级标题的格式解决方案四:rtf里面弄好格式,