Android:在可点击的TextView中使用ClickableSpan
Android:在可点击的TextView中使用ClickableSpan
我有一个TextView,它可以包含可点击的链接。当点击其中一个链接时,我想要启动一个活动。这个功能可以正常工作,但是我也希望能够点击整个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); 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的监听器?或者在整个视图的监听器中决定是否点击了链接?