How to set the part of the text view is clickable

后端 未结 20 1317
无人共我
无人共我 2020-11-22 01:29

I have the text \"Android is a Software stack\". In this text i want to set the \"stack\" text is clickable. in the sense if you click on t

20条回答
  •  耶瑟儿~
    2020-11-22 02:31

    more generic answer in kotlin

       fun setClickableText(view: TextView, firstSpan: String, secondSpan: String) {
        val context = view.context
        val builder = SpannableStringBuilder()
        val unClickableSpan = SpannableString(firstSpan)
        val span = SpannableString(" "+secondSpan)
    
        builder.append(unClickableSpan);
        val clickableSpan: ClickableSpan = object : ClickableSpan() {
            override fun onClick(textView: View) {
                val intent = Intent(context, HomeActivity::class.java)
             context.startActivity(intent)
            }
    
            override fun updateDrawState(ds: TextPaint) {
                super.updateDrawState(ds)
                ds.isUnderlineText = true
                ds.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.ITALIC));
            }
        }
        builder.append(span);
        builder.setSpan(clickableSpan, firstSpan.length, firstSpan.length+secondSpan.length+1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
    
        view.setText(builder,TextView.BufferType.SPANNABLE)
        view.setMovementMethod(LinkMovementMethod.getInstance());
    
    
    }
    

提交回复
热议问题