我们在使用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; } } }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!
我希望数字在我的EditText中显示,最多1位小数,没有前导零,例如25.0不像025.0 我该怎么做? 这是在Android系统中
我有一个名为“ParkPhotos.txt”的文件,里面有一些公园的12个名字,例如“AmericanMosao_photo.jpg”。我想把“_photo.jpg”改成“_info.txt”,但我很挣扎。在代码中,我能够读取该文件,但我不确定如何替换它。
问题内容: 我正在尝试使用setRequestProperty(“ Range”,“ bytes =” + startbytes +“-” + endbytes);给定下载URL来下载文件的一部分。以下代码片段显示了我要执行的操作。 问题是,正在引发一个异常,该异常表示“建立连接后无法设置请求属性”。请帮助我解决此问题。 问题答案: 假设您正在使用HTTP进行下载,则需要使用HEAD http动词
我已经在我的应用程序中编辑文本以操纵产品数量,但是如果我要更改数量,那么问题就是在那个时候获得NPE。要更改编辑文本中的数量,我需要删除现有内容并需要添加新数量,请检查以下代码
我习惯于在Tomcat上部署应用程序war文件,现在需要在非常紧迫的期限内使用Jboss EAP,所以没有太多时间学习。我看到主要的区别是,当我启动jboss实例时,war文件没有像Tomcat中那样被提取。Jboss只是在部署war文件中的内容。那么如何修改war文件中的文件呢?我是否需要为每次更改提取、更改和重新打包? 非常感谢。
我已经重新安排并定制了Eclipse布局,使其符合我的喜好。但是每当我打开一个java源文件时,它都会在带有Package Explorer和Outline的框中打开,而不是在左边我想要的大框中(参见屏幕截图)。我怎样才能改变这个?