use*_*024 4 android hyperlink linkify
我正在我的项目中,我有一个listView,每个项目都是一个LinaerLayout,它有一个带Linkify超链接的TextView.因此,当我按下列表视图中的某个项目时,它会打开一个对话框,这很好.当我按下listView中的链接文本时,它会打开一个对话框,这很好.问题:当我长按Listview中的链接文本时,它会同时打开一个对话框和给定链接的活动!在这种情况下,我只希望它只打开对话框.换句话说,我想在Long press上忽略Linkify的超链接.有谁知道我怎么做到这一点?我不知道在哪里申请LongPress attributs ...在此先感谢.
仅供参考,我尝试了以下但不起作用.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
你需要一个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);
}
});
Run Code Online (Sandbox Code Playgroud)
这个问题发生在一些手机中.
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |