支持表情吧寺,@mention窜管,#話題#等功能的EditText控件--SpEditTool使用指南

輸入@xxx #話題#等特殊字符,實(shí)現(xiàn)整體刪除稚机,文字高亮等功能的自定義EditText

項(xiàng)目地址 https://github.com/sunhapper/SpEditTool
思路介紹 自定義EditText輕松實(shí)現(xiàn)群聊精確@提及功能(@mention) 微博話題等功能
歡迎star幕帆,提PR、issue

ScreenShot

ScreenShot

emojiSp.gif

使用說明

Gradle

  • root build.gradle
    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
  • dependency
dependencies {
            compile 'com.github.sunhapper:SpEditTool:0.2.3'
    }

xml

<com.sunhapper.spedittool.view.SpEditText
    android:id="@+id/spEdt"
    app:react_keys="#*%@"
    app:sp_mode="breakable"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
  • app:react_keys--要響應(yīng)的字符列表,也可以在java代碼中用setReactKeys設(shè)置
  • app:sp_mode
    • "integrated"表示完整刪除
    • "breakable"普通刪除赖条,當(dāng)完整性被破壞失乾,對(duì)應(yīng)的數(shù)據(jù)和樣式會(huì)被移除

java

  • 設(shè)置要響應(yīng)的字符列表及設(shè)置回調(diào)
//參數(shù)為String,會(huì)被解析成char[]
spEditText.setReactKeys("@#%*");
spEditText.setKeyReactListener(new KeyReactListener() {
      @Override
      public void onKeyReact(String key) {
        //key被響應(yīng)的字符,長(zhǎng)度為1
        //todo 處理自己的邏輯
      }
    });
  • 插入特殊字符串
spEditText.insertSpecialStr(" @sunhapper ", true, 0, new ForegroundColorSpan(Color.RED));
  /**
   * 插入特殊字符串
   *
   * @param showContent 特殊字符串顯示在文本框中的內(nèi)容
   * @param rollBack 是否往前刪除一個(gè)字符纬乍,因?yàn)锧的時(shí)候可能留了一個(gè)字符在輸入框里
   * @param customData 特殊字符串的數(shù)據(jù)結(jié)構(gòu)
   * @param customSpan 特殊字符串的樣式
   */
  public void insertSpecialStr(String showContent, boolean rollBack, Object customData,
      Object customSpan)
  • 獲取SpEditText的數(shù)據(jù)
//獲取到的數(shù)據(jù)是根據(jù)起點(diǎn)位置排過序的
SpData[] spDatas = spEditText.getSpDatas(); 
  public class SpData {

    /**
     * EditText中顯示的內(nèi)容
     */
    private String showContent;
    /**
     * 插入特殊字符串時(shí)傳入的代表自定義數(shù)據(jù)結(jié)構(gòu)的對(duì)象
     */
    private Object customData;
    /**
     * 特殊字符串的在完整字符串中的起點(diǎn)
     */
    private int start;
    /**
     * 特殊字符串的在完整字符串中的終點(diǎn)
     */
    private int end;
  }

彩蛋

GifTextUtil.setText(TextView textView,CharSequence text)
一行代碼讓TextView中ImageSpan支持Gif

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碱茁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子仿贬,更是在濱河造成了極大的恐慌纽竣,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茧泪,死亡現(xiàn)場(chǎng)離奇詭異蜓氨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)队伟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門穴吹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人嗜侮,你說我怎么就攤上這事港令。” “怎么了锈颗?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵缠借,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我宜猜,道長(zhǎng),這世上最難降的妖魔是什么硝逢? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任姨拥,我火速辦了婚禮绅喉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叫乌。我一直安慰自己柴罐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布憨奸。 她就那樣靜靜地躺著革屠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪排宰。 梳的紋絲不亂的頭發(fā)上似芝,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音板甘,去河邊找鬼党瓮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛盐类,可吹牛的內(nèi)容都是我干的寞奸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼在跳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼枪萄!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起猫妙,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓷翻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后吐咳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逻悠,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年韭脊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了童谒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沪羔,死狀恐怖饥伊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔫饰,我是刑警寧澤琅豆,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站篓吁,受9級(jí)特大地震影響茫因,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杖剪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一冻押、第九天 我趴在偏房一處隱蔽的房頂上張望驰贷。 院中可真熱鬧,春花似錦洛巢、人聲如沸括袒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锹锰。三九已至,卻和暖如春漓库,著一層夾襖步出監(jiān)牢的瞬間恃慧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工米苹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糕伐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓蘸嘶,卻偏偏與公主長(zhǎng)得像良瞧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子训唱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,754評(píng)論 25 707
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評(píng)論 6 342
  • 你所做的每一件事情都要有進(jìn)步褥蚯,哪怕這個(gè)進(jìn)步微小到塵埃里也好過原地踏步。小的進(jìn)步就是基石况增,暮然回首你會(huì)發(fā)現(xiàn)你做的每一...
    雪沐閱讀 153評(píng)論 0 0
  • 北京大學(xué):思想自由赞庶、兼容并包 清華大學(xué):自強(qiáng)不息,厚德載物 浙江大學(xué):求是創(chuàng)新 武漢大學(xué):自強(qiáng)弘毅 求是拓新 南京...
    Derek_Kun閱讀 511評(píng)論 4 2
  • 你要走了 我不舍得 自己沒有想象中的要堅(jiān)強(qiáng) 有很多回憶 關(guān)于你我之間 例如藍(lán)莓草莓貴的你從來(lái)都不吃 留給我 你說你...
    Dinohere閱讀 754評(píng)論 0 5