Android:可点击的跨度在可点击的文本视图中
我有一个文本视图,可以包含可点击的链接。单击其中一个链接时,我想启动一个活动。这工作正常,但也应该可以单击整个文本视图并启动另一个活动。
这就是我目前的解决方案:
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 时,每次我单击链接时,首先会调用整个文本视图的侦听器,然后调用 ClickableSpan 的侦听器。
有没有办法防止Android在点击链接时调用整个文本视图的监听器?或者在整个视图的侦听器中决定是否单击了链接?