gpt4 book ai didi

Android - 如何在长按时停止 Linkify?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:39:25 28 4
gpt4 key购买 nike

我正在处理我的项目,我有一个 listView,每个项目都是一个 LinaerLayout,它有一个带有 Linkify 超链接的 TextView。所以,当我在 ListView 中按下一个项目时,它会打开一个对话框,这很好。当我按下 listView 中的链接文本时,它会打开一个对话框,这很好。问题:当我长按 ListView 中的链接文本时,它会同时打开一个对话框和给定链接的 Activity !在这种情况下,我只希望它只打开对话框。换句话说,我想在长按时忽略 Linkify 的超链接。有谁知道我该怎么做?我不知道在哪里应用 LongPress 属性...提前致谢。

仅供引用,我尝试了以下但不起作用。

public class URLSpanNoUnderline extends URLSpan implements OnLongClickListener {
public URLSpanNoUnderline(String url) {
super(url);
}

@Override
public void updateDrawState(TextPaint textPaint) {
super.updateDrawState(textPaint);

textPaint.setUnderlineText(false);
}

@Override
public void onClick(View v) {}

@Override
public boolean onLongClick(View v) {
Log.d("log", "lonnnnnnnnnnnnnnnng click");
return false;
}
}

最佳答案

需要一个longClick标记,在textview中设置longclicklistener,在touchlistener中,当action等于MotionEvent.ACTION_UP且longClick为true时,返回true。

textview.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
isLongClick= true;
return false;
}
});

textview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP && isLongClick){
isLongClick= false;
return true;
}
if(event.getAction() == MotionEvent.ACTION_DOWN){
isLongClick= false;
}
return v.onTouchEvent(event);
}
});

这个问题发生在一些手机上。

关于Android - 如何在长按时停止 Linkify?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16047215/

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