gpt4 book ai didi

java - Android:可点击 TextView 中的 ClickableSpan

转载 作者:IT老高 更新时间:2023-10-28 20:46:28 25 4
gpt4 key购买 nike

我有一个可以包含可点击链接的 TextView 。单击其中一个链接时,我想开始一项 Activity 。这很好用,但也应该可以单击整个 TextView 并开始另一个 Activity 。

这就是我目前的解决方案:

    TextView tv = (TextView)findViewById(R.id.textview01);      
Spannable span = Spannable.Factory.getInstance().newSpannable("test link span");
span.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
Log.d("main", "link clicked");
Toast.makeText(Main.this, "link clicked", Toast.LENGTH_SHORT).show();
} }, 5, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(span);

tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("main", "textview clicked");
Toast.makeText(Main.this, "textview clicked", Toast.LENGTH_SHORT).show();
}
});

tv.setMovementMethod(LinkMovementMethod.getInstance());

问题是,当我设置 OnClickListener 时,每次点击链接时首先整个 TextView 的监听器然后调用 ClickableSpan 的监听器.

当点击链接时,有没有办法阻止 android 调用整个 textview 的监听器?或者在整个 View 的监听器中决定是否点击了链接?

最佳答案

找到了一个非常简单的解决方法。在所有不属于链接的文本区域上定义 ClickableSpan 并像单击 TextView 一样处理对它们的单击:

TextView tv = (TextView)findViewById(R.id.textview01);      
Spannable span = Spannable.Factory.getInstance().newSpannable("test link span");
span.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
Log.d("main", "link clicked");
Toast.makeText(Main.this, "link clicked", Toast.LENGTH_SHORT).show();
} }, 5, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

// All the rest will have the same spannable.
ClickableSpan cs = new ClickableSpan() {
@Override
public void onClick(View v) {
Log.d("main", "textview clicked");
Toast.makeText(Main.this, "textview clicked", Toast.LENGTH_SHORT).show();
} };

// set the "test " spannable.
span.setSpan(cs, 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

// set the " span" spannable
span.setSpan(cs, 6, span.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

tv.setText(span);

tv.setMovementMethod(LinkMovementMethod.getInstance());

希望这会有所帮助(我知道这个帖子很旧,但万一有人现在看到它......)。

关于java - Android:可点击 TextView 中的 ClickableSpan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com