激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 在安卓系統中插入表情到光標位置的代碼詳解

在安卓系統中插入表情到光標位置的代碼詳解

2019-12-31 14:27低調小一 JAVA教程

這篇文章主要介紹了在安卓系統中插入表情到光標位置的代碼詳解,利用Java代碼在EditText控件中實現,需要的朋友可以參考下

前言
    之前寫的一個Android應用,在回復帖子插入表情的時候存在一個BUG,就是無法在EditText中指定的光標處插入表情字符串,每次添加的表情字符串都跑到了文字末尾。分析了一下apk源碼,發現是在表情盤的onClick響應事件中沒有正確處理表情字符串的添加方法,這里記錄一下如何在EditText指定光標處插入表情字符串。

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

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
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());
}

延伸 · 閱讀

精彩推薦
  • JAVA教程Java實現數據庫連接池的方法

    Java實現數據庫連接池的方法

    這篇文章主要介紹了Java實現數據庫連接池的方法,涉及java數據庫連接池的創建、連接、刷新、關閉及狀態獲取的常用技巧,具有一定參考借鑒價值,需要的朋...

    華宰3672019-12-27
  • JAVA教程Java反射機制的學習總結

    Java反射機制的學習總結

    總的來說,java反射機制是一個很好用的東西,用它可以解決很多死的東西,因為反射機制的靈活行很大,有了他,我們就不要花太多的時間來寫操做數據庫...

    java開發網1732019-10-14
  • JAVA教程java隨機字符補充版

    java隨機字符補充版

    今天在zuidaimai看到一個java隨機字符生成demo,正好要用,但發現不完整,重新整理一下,分享給有需要的朋友 ...

    java教程網2072019-11-01
  • JAVA教程通過dom4j解析xml字符串(示例代碼)

    通過dom4j解析xml字符串(示例代碼)

    本篇文章主要是對通過dom4j解析xml字符串的示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助 ...

    java教程網1512019-10-26
  • JAVA教程教你如何編寫簡單的網絡爬蟲

    教你如何編寫簡單的網絡爬蟲

    實際的爬蟲是從一系列的種子鏈接開始。種子鏈接是起始節點,種子頁面的超鏈接指向的頁面是子節點(中間節點),對于非html文檔,如excel等,不能從中...

    java之家4602019-10-16
  • JAVA教程簡單介紹線性表以及如何實現雙鏈表

    簡單介紹線性表以及如何實現雙鏈表

    本文先介紹線性表的幾個基本組成部分:數組、單向鏈表、雙向鏈表;隨后給出雙向鏈表的C、C++和Java三種語言的實現,需要的朋友可以參考下 ...

    sky5449003734252019-12-29
  • JAVA教程JAVA設計模式之解釋器模式詳解

    JAVA設計模式之解釋器模式詳解

    這篇文章主要介紹了JAVA設計模式之解釋器模式詳解,解釋器模式是類的行為模式,給定一個語言之后,解釋器模式可以定義出其文法的一種表示,并同時提供一...

    JUNJIE4812019-12-15
  • JAVA教程Java中避免空指針異常的方法

    Java中避免空指針異常的方法

    這篇文章主要介紹了Java中避免空指針異常的方法,本文討論Optional類型、Objects類等技術,需要的朋友可以參考下 ...

    junjie4792019-12-01
主站蜘蛛池模板: 成人在线免费观看小视频 | 国产精品999在线 | 久久久久久久久免费 | 黑人操穴 | 九一免费在线观看 | 亚洲午夜免费 | 中文字幕在线播放视频 | 欧美一极视频 | 18视频网站在线观看 | 国产精品热 | 国产精品1区,2区,3区 | 爱视频福利 | 斗罗破苍穹在线观看免费完整观看 | 国产精品视频成人 | 久久精品视频6 | 特片网久久| 久久狠狠高潮亚洲精品 | zzzzzzzxxxxxx日本人 | 91香蕉影视 | 欧美一级片免费在线观看 | 蜜桃传媒视频麻豆第一区免费观看 | 一级做a爱片毛片免费 | 56av国产精品久久久久久久 | 美女羞羞视频在线观看 | 久久国产一二三 | 黄a大片| 欧洲伊人网| 日本精品一区二区 | 亚洲一区 国产精品 | 双性帝王调教跪撅打屁股 | 国产午夜精品一区二区三区视频 | 蜜桃91麻豆| 成av人在线观看 | 成人精品免费看 | 娇喘视频在线观看 | 一级免费特黄视频 | 久久精品人人做人人爽 | 午夜精品久久久久久久久久久久久蜜桃 | 欧美日韩国产成人在线观看 | 意大利av在线 | hd极品free性xxx护士人 |