Android TextView部分文字實現(xiàn)點擊事件

一個TextView設(shè)置部分內(nèi)容的點擊事件及樣式,Android的TextView中早已為開發(fā)人員提供好了這樣的API:

SpannableStringBuilder.class

This is the class for text whose content and markup can both be changed.
(這是一個內(nèi)容和標(biāo)記都可以更改的文本類)
快速實現(xiàn)
直接看代碼:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView tv = findViewById(R.id.tvContent);

    final SpannableStringBuilder style = new SpannableStringBuilder();

    //設(shè)置文字
    style.append("注冊即為同意《某某某協(xié)議》");

    //設(shè)置部分文字點擊事件
    ClickableSpan clickableSpan = new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            Toast.makeText(MainActivity.this, "觸發(fā)點擊事件!", Toast.LENGTH_SHORT).show();
        }
    };
    style.setSpan(clickableSpan, 7, 13, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv.setText(style);

    //設(shè)置部分文字顏色
    ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.parseColor("#0000FF"));
    style.setSpan(foregroundColorSpan, 7, 13, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    //配置給TextView
    tv.setMovementMethod(LinkMovementMethod.getInstance());
    tv.setText(style);
}

簡單介紹一下SpannableStringBuilder儒恋,這個類實際上就是對你的TextView中的文字進(jìn)行簡單的配置,配置好你想要的屬性后癣猾,直接調(diào)用下面代碼即可:

//設(shè)置光標(biāo)如何移動計量的方法
textView.setMovementMethod(LinkMovementMethod.getInstance());
//配置給TextView
textView.setText(style)
如何進(jìn)行各個屬性的配置呢沈善?我們以字體設(shè)置顏色為例:

//設(shè)置部分文字顏色

//創(chuàng)建字體顏色的Span,并初始化字體顏色屬性
ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.parseColor("#0000FF"));
//我們設(shè)置第7~13個中間的字符為藍(lán)色
style.setSpan(foregroundColorSpan, 7, 13, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

SpannableStringBuilder和SpannableString主要通過使用setSpan(Object what, int start, int end, int flags)改變文本樣式色洞。

setSpan()方法對應(yīng)的參數(shù)如下:

start: 指定Span的開始位置
end: 指定Span的結(jié)束位置替蛉,并不包括這個位置贯溅。
flags:取值有如下四個
Spannable. SPAN_INCLUSIVE_EXCLUSIVE:前面包括,后面不包括躲查,即在文本前插入新的文本會應(yīng)用該樣式它浅,而在文本后插入新文本不會應(yīng)用該樣式
Spannable. SPAN_INCLUSIVE_INCLUSIVE:前面包括,后面包括镣煮,即在文本前插入新的文本會應(yīng)用該樣式姐霍,而在文本后插入新文本也會應(yīng)用該樣式
Spannable. SPAN_EXCLUSIVE_EXCLUSIVE:前面不包括,后面不包括
Spannable. SPAN_EXCLUSIVE_INCLUSIVE:前面不包括典唇,后面包括
詳細(xì)實現(xiàn)方式都已經(jīng)在【Android】強大的SpannableStringBuilder @帶心情去旅行 中有很清楚的講解镊折,大家去原作者家查閱即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末介衔,一起剝皮案震驚了整個濱河市恨胚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炎咖,老刑警劉巖赃泡,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寒波,死亡現(xiàn)場離奇詭異,居然都是意外死亡升熊,警方通過查閱死者的電腦和手機(jī)影所,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僚碎,“玉大人,你說我怎么就攤上這事阴幌∩撞” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵矛双,是天一觀的道長渊抽。 經(jīng)常有香客問我,道長议忽,這世上最難降的妖魔是什么懒闷? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮栈幸,結(jié)果婚禮上愤估,老公的妹妹穿的比我還像新娘。我一直安慰自己速址,他們只是感情好玩焰,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芍锚,像睡著了一般昔园。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上并炮,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天默刚,我揣著相機(jī)與錄音,去河邊找鬼逃魄。 笑死荤西,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嗅钻。 我是一名探鬼主播皂冰,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼养篓!你這毒婦竟也來了秃流?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤柳弄,失蹤者是張志新(化名)和其女友劉穎舶胀,沒想到半個月后概说,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡嚣伐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年糖赔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片轩端。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡放典,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出基茵,到底是詐尸還是另有隱情奋构,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布拱层,位于F島的核電站弥臼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏根灯。R本人自食惡果不足惜径缅,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烙肺。 院中可真熱鬧纳猪,春花似錦、人聲如沸茬高。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怎栽。三九已至丽猬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熏瞄,已是汗流浹背脚祟。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留强饮,地道東北人由桌。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像邮丰,于是被迫代替她去往敵國和親行您。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349