我有一个可以包含可点击链接的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());
Run Code Online (Sandbox Code Playgroud)
问题是,当我设置一个OnClickListener,每次我点击一个链接第一监听整个的TextView ,然后将一个用于ClickableSpan被调用.
当点击一个链接时,有没有办法防止android为整个textview调用监听器?或者在监听器中决定整个视图,是否单击了链接?