最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在安卓系統(tǒng)中插入表情到光標(biāo)位置的代碼詳解

 更新時(shí)間:2015年07月31日 10:45:42   作者:低調(diào)小一  
這篇文章主要介紹了在安卓系統(tǒng)中插入表情到光標(biāo)位置的代碼詳解,利用Java代碼在EditText控件中實(shí)現(xiàn),需要的朋友可以參考下

前言
    之前寫(xiě)的一個(gè)Android應(yīng)用,在回復(fù)帖子插入表情的時(shí)候存在一個(gè)BUG,就是無(wú)法在EditText中指定的光標(biāo)處插入表情字符串,每次添加的表情字符串都跑到了文字末尾。分析了一下apk源碼,發(fā)現(xiàn)是在表情盤(pán)的onClick響應(yīng)事件中沒(méi)有正確處理表情字符串的添加方法,這里記錄一下如何在EditText指定光標(biāo)處插入表情字符串。

EditText光標(biāo)處插入表情字符串的方法
    既然是在EditText控件中插入表情字符串,那首先需要獲取EditText控件對(duì)象,示例源碼如下:

  EditText rEditText = (EditText) findViewById(R.id.r_edittext); 

    獲取了當(dāng)前EditText控件對(duì)象,下一步是要保存當(dāng)前EditText中已有的字符串,示例源碼如下:

  String oriContent = rEditText.getText().toString(); 

    接下來(lái),就是要獲取光標(biāo)的位置了。使用EditText控件提供的getSelectionStart()方法。但是,這里需要注意的是,當(dāng)EditText中沒(méi)有光標(biāo)時(shí),使用該方法將返回-1,這顯然不是我們想要的光標(biāo)位置,因此最好和0再做個(gè)比較,示例源碼如下:

  int index = Math.max(rEditText.getSelectionStart(), 0); 

    剩下的,就是在給定的光標(biāo)位置插入表情字符串了,然后再設(shè)置新的光標(biāo)位置。完整的插入表情示例源碼如下:

  private void insertEmotion(String insertEmotion) { 
    String oriContent = rEditText.getText().toString(); 
    int index = Math.max(rEditText.getSelectionStart(), 0); 
    StringBuilder sBuilder = new StringBuilder(oriContent); 
    sBuilder.insert(index, insertEmotion); 
    rEditText.setText(sBuilder.toString()); 
    rEditText.setSelection(index + insertEmotion.length()); 
  } 

相關(guān)文章

  • IntelliJ?IDEA2022.3?springboot?熱部署含靜態(tài)文件(最新推薦)

    IntelliJ?IDEA2022.3?springboot?熱部署含靜態(tài)文件(最新推薦)

    這篇文章主要介紹了IntelliJ?IDEA2022.3?springboot?熱部署含靜態(tài)文件,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • Java集合框架LinkedList詳解及實(shí)例

    Java集合框架LinkedList詳解及實(shí)例

    這篇文章主要介紹了Java集合框架LinkedList詳解及實(shí)例的相關(guān)資料,從定義,概述,用法進(jìn)行介紹,需要的朋友可以參考下
    2017-04-04
  • java中重載、覆蓋和隱藏三者的區(qū)別分析

    java中重載、覆蓋和隱藏三者的區(qū)別分析

    本篇文章介紹了,在java中重載、覆蓋和隱藏它們?nèi)叩膮^(qū)別分析。需要的朋友參考下
    2013-04-04
  • idea導(dǎo)入項(xiàng)目框架的詳細(xì)操作方法

    idea導(dǎo)入項(xiàng)目框架的詳細(xì)操作方法

    大家使用idea開(kāi)發(fā)工具時(shí)經(jīng)常會(huì)需要導(dǎo)入項(xiàng)目框架,糾結(jié)該怎么操作呢,今天小編給大家分享一篇圖文教程,幫助大家解決idea導(dǎo)入項(xiàng)目框架的問(wèn)題,感興趣的朋友一起看看吧
    2021-05-05
  • SpringCloud Hystrix的使用

    SpringCloud Hystrix的使用

    這篇文章主要介紹了SpringCloud Hystrix的使用,幫助大家更好的理解和學(xué)習(xí)使用SpringCloud,感興趣的朋友可以了解下
    2021-04-04
  • SpringBoot對(duì)Filter過(guò)濾器中的異常進(jìn)行全局處理方案詳解

    SpringBoot對(duì)Filter過(guò)濾器中的異常進(jìn)行全局處理方案詳解

    這篇文章主要介紹了SpringBoot對(duì)Filter過(guò)濾器中的異常進(jìn)行全局處理,在SpringBoot中我們通過(guò) @ControllerAdvice 注解和 @ExceptionHandler注解注冊(cè)了全局異常處理器,需要的朋友可以參考下
    2023-09-09
  • spring cloud gateway轉(zhuǎn)發(fā)服務(wù)報(bào)錯(cuò)的解決

    spring cloud gateway轉(zhuǎn)發(fā)服務(wù)報(bào)錯(cuò)的解決

    這篇文章主要介紹了spring cloud gateway轉(zhuǎn)發(fā)服務(wù)報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java輸入年份和月份判斷多少天實(shí)例代碼

    Java輸入年份和月份判斷多少天實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Java輸入年度和月份判斷多少天的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SparkSQL中的JSON內(nèi)置函數(shù)全解析

    SparkSQL中的JSON內(nèi)置函數(shù)全解析

    你是否曾經(jīng)為處理JSON數(shù)據(jù)而頭疼?SparkSQL為我們提供了強(qiáng)大的內(nèi)置JSON函數(shù),讓JSON處理變得輕而易舉,本文將帶你深入了解這些函數(shù),感興趣的朋友一起看看吧
    2024-08-08
  • java設(shè)計(jì)模式之單例模式

    java設(shè)計(jì)模式之單例模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之單例模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評(píng)論

闻喜县| 象山县| 通榆县| 安福县| 酒泉市| 肥乡县| 浦东新区| 张家界市| 玛纳斯县| 莲花县| 都匀市| 洛南县| 民勤县| 崇信县| 大竹县| 桃源县| 金乡县| 东平县| 历史| 游戏| 马尔康县| 高要市| 阳信县| 固镇县| 天镇县| 阿拉尔市| 赫章县| 浦东新区| 开阳县| 图们市| 鹤山市| 扎赉特旗| 白朗县| 鹤壁市| 读书| 定南县| 积石山| 隆回县| 沧源| 桐城市| 崇义县|