Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 突出显示在Clickable上span单击_Android_Highlight - Fatal编程技术网

Android 突出显示在Clickable上span单击

Android 突出显示在Clickable上span单击,android,highlight,Android,Highlight,我没有什么问题,我需要在单击clickablespan时删除或自定义此橙色突出显示。这是我扩展ClickableSpan的课程 public class InternalClickableSpan extends ClickableSpan { private String clicked; @Override public void updateDrawState(TextPaint ds) { ds.setUnderlineText(false);

我没有什么问题,我需要在单击clickablespan时删除或自定义此橙色突出显示。这是我扩展ClickableSpan的课程

public class InternalClickableSpan extends ClickableSpan {

    private String clicked;

    @Override
    public void updateDrawState(TextPaint ds) {
        ds.setUnderlineText(false);
    }

    public InternalClickableSpan(String clickedString) {
        clicked = clickedString;
    }

    @Override
    public void onClick(View view) {
        Selection.setSelection((Spannable) ((TextView)view).getText(), 0);
        Toast toast = Toast.makeText(mContext, clicked, Toast.LENGTH_SHORT);
        toast.show();
    }
}
这就是我在文本视图中使用它的方式

Spannable spans = (Spannable) tv.getText();      
spans.setSpan(new InternalClickableSpan(contacts[i]), text.indexOf(contacts[i]),   text.indexOf(contacts[i])+contacts[i].length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
有人知道如何在可展对象上自定义“onclick highlight”吗

编辑:感谢Aleadam的回复,我正在重写updateDrawState(请看一下InternalClickableSpan类中的第一个方法),但无论如何我都找不到自定义此higlight的方法。有人有其他想法吗?谢谢


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <LinearLayout android:id="@+id/LinearLayout02"
        android:layout_height="50px"
        android:layout_width="fill_parent"
        // Layout Click enable
        android:clickable="true"
        // Setting Highlight Option in background property
        android:background="@android:drawable/list_selector_background" />
    </LinearLayout>
</LinearLayout>
就用这个吧

view.setSelector(new ColorDrawable(Color.TRANSPARENT));

您可以像这样覆盖
onClick(查看小部件)

        @Override
        public void onClick(View widget) {
            // do what must happen after click event.
            widget.invalidate();
        }

这将删除任何突出显示

tv.setHighlightColor(Color.TRANSPARENT);


你可以替换默认的highlightColor
android:textColorHighlight

    <TextView
    android:id="@+id/tv_tip"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#727998"
    android:textColorHighlight="@android:color/transparent"
    tools:text="@string/_tip" />

或禁用焦点

textView.setText(myString);
Linkify.addLinks(textView,Linkify.ALL);

这对我适用。

尝试覆盖updateDrawState()@Aleadam感谢您的回复,我正在重写updateDrawState(请看一下InternalClickableSpan类中的第一个方法),但无论如何我都找不到自定义此higlight的方法。有人有其他想法吗?谢谢,我知道了,要禁用higlight,我们需要在TextView上设置setHighlightColor(Color.TRANSPARENT)方法。找到解决方案了吗?有关如何在编辑器中格式化代码的信息,请参阅。这仅适用于列表视图。这对我有用。节省了大量的时间。谢谢你,伙计@hasanghaforian是默认启用的可扩展字符串的突出显示?谢谢您的回答。但我使用的是
widget.postInvalidate()
@DIRTYDAVE。我碰巧看到了它是高亮显示的。关于多个可点击的范围如何?它正在工作。但正如@ShihabUddin所说,有没有办法在单个
TextView
和多个
ClickableSpan
s上实现这一点?
textView.setText(myString);
Linkify.addLinks(textView,Linkify.ALL);