android如何改變editText控件中部分文字的格式
我們在使用editText控件的時(shí)候,會(huì)遇到這樣的一問題,就是我在輸入時(shí)候,當(dāng)我選擇讓文字變粗時(shí),我輸入的文字就會(huì)變粗,當(dāng)我去掉選擇時(shí),再輸入文字時(shí),文字就是正常情況了。
這種情況,大家一般認(rèn)為很簡單啊。editText中不是有setTypeface這個(gè)方法嗎。只要使用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{ //定義當(dāng)前輸入的字符數(shù) private int CharCount = 0; //s:變化后的所有字符 public void afterTextChanged(Editable s) { //將光標(biāo)點(diǎn),移動(dòng)到最后一個(gè)字 edit_temp.setSelection(s.length()); } //s:變化前的所有字符; start:字符開始的位置; count:變化前的總字節(jié)數(shù);after:變化后的字節(jié)數(shù) public void beforeTextChanged(CharSequence s, int start, int count,int after) { } //S:變化后的所有字符;start:字符起始的位置;before: 變化之前的總字節(jié)數(shù);count:變化后的字節(jié)數(shù) public void onTextChanged(CharSequence s, int start, int before, int count) { //判斷當(dāng)前輸入的字符數(shù),與文本框內(nèi)的字符數(shù)長度是否一樣,如果一樣,則不進(jìn)行操作 //主要用來跳出循環(huán),當(dāng)改變文字時(shí),onTextChanged就認(rèn)為有所變化,會(huì)進(jìn)入死循環(huán),所以采用這種方式結(jié)束循環(huán) if(CharCount!=edit_temp.length()) { //將當(dāng)前字符串的長度給輸入字符串變量 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; } } }
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
- Android如何禁止向EditText控件中輸入內(nèi)容詳解
- Android編程實(shí)現(xiàn)點(diǎn)擊EditText之外的控件隱藏軟鍵盤功能
- Android開發(fā)中給EditText控件添加TextWatcher監(jiān)聽實(shí)現(xiàn)對輸入字?jǐn)?shù)的限制(推薦)
- Android自定義EditText右側(cè)帶圖片控件
- Android帶清除功能的輸入框控件EditTextWithDel
- Android輸入框控件ClearEditText實(shí)現(xiàn)清除功能
- Android實(shí)現(xiàn)EditText控件禁止輸入內(nèi)容的方法(附測試demo)
- Android控件系列之EditText使用方法
- Android自定義控件EditText使用詳解
相關(guān)文章
Flutter使用SingleTickerProviderStateMixin報(bào)錯(cuò)解決
這篇文章主要為大家介紹了Flutter使用SingleTickerProviderStateMixin報(bào)錯(cuò)解決示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Flutter中數(shù)據(jù)存儲的四種方式小結(jié)
在 Flutter 中,存儲是指用于本地和遠(yuǎn)程存儲和管理數(shù)據(jù)的機(jī)制,本給大家介紹了Flutter中不同存儲選項(xiàng)的概述和示例,通過代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-11-11AndroidStudio不自動(dòng)添加新創(chuàng)建的文件到VCS的解決辦法
這篇文章主要介紹了AndroidStudio不自動(dòng)添加新創(chuàng)建的文件到VCS的解決辦法的相關(guān)資料,需要的朋友可以參考下2017-03-03android自定義view實(shí)現(xiàn)數(shù)字進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了android自定義view實(shí)現(xiàn)數(shù)字進(jìn)度條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12分享Android平板電腦上開發(fā)應(yīng)用程序不能全屏顯示的問題解決
在一個(gè)8寸屏的Android平板電腦上開發(fā)應(yīng)用程序(游戲程序),開始的時(shí)候,總是不能全屏顯示,也不知道怎么設(shè)置才可以2013-05-05Android自定義view之圍棋動(dòng)畫效果的實(shí)現(xiàn)
這篇文章主要介紹了Android自定義view之圍棋動(dòng)畫效果的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12詳解Android ViewPager2中的緩存和復(fù)用機(jī)制
最近接觸到豎向整頁滑動(dòng)的需求,發(fā)現(xiàn)了viewpager2,viewpager2支持fragment,保留了viewpager的特性,下面這篇文章主要給大家介紹了關(guān)于ViewPager2中的緩存和復(fù)用機(jī)制的相關(guān)資料,需要的朋友可以參考下2021-11-11