android - 如何设置部分 TextView 可点击

标签 android string textview clickablespan

我有文本“Android 是一个软件堆栈”。在此文本中,我想将“stack”文本设置为可点击。所以,如果你点击它,它将重定向到一个新的 Activity (不在浏览器中)。

我试过了,但我没有得到解决方案。

最佳答案

android.text.style.ClickableSpan可以解决你的问题。

SpannableString ss = new SpannableString("Android is a Software stack");
ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(View textView) {
        startActivity(new Intent(MyActivity.this, NextActivity.class));
    }
    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
    }
};
ss.setSpan(clickableSpan, 22, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

TextView textView = (TextView) findViewById(R.id.hello);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);

在 XML 中:

<TextView 
  ...
  android:textColorLink="@drawable/your_selector"
/>

关于android - 如何设置部分 TextView 可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10696986/

相关文章:

Python:for循环 - 在同一行打印

Java Array Char 和 String 数组中的区别

java - Android将度数符号设置为Textview

android - 如何在布局中将 View 居中而不与其他 View 重叠

android - C 编译器 "clang.exe"无法编译简单的测试程序

c++ - 如何测试字符串是否是有效的 C++(ish) 表达式?

android - 在android中的imageview之上放置一个textview

swift - 如何检测TableView中已关闭的TextView?

android - Android Activity 结束后如何释放相机?

用于获取时间和日期的 Java 库或 Android