在ListView项中使用ClickableSpan时,永远不会调用onListItemClick

时间:2013-04-11 23:23:46

标签: java android listactivity

如果这个问题已在某个地方得到解答,我道歉,但我无法找到解决此问题的任何问题。

我有一个很长的代码,扩展了ListActivity。在CustomAdapter中,当调用getView时,我使用ClickableSpan在我的ListItem文本中创建链接,并且效果很好

问题是现在方法onListItemClick无效(除了页脚,我没有设置ClickableSpan)。

问题:是否可以让onListItemClick方法适用于所有ListItem,同时保持在文本中创建链接的ClickableSpan的功能? / p>

以下是我使用ClickableSpan在ListItems中创建链接的方法: (这是在适配器的ListView中的TextView的getView方法中调用的,由ViewHolder持有)

tvTextView.setMovementMethod(LinkMovementMethod.getInstance());
Spannable spans = (Spannable) tvTextView.getText();
Pattern pattern = Pattern.compile("[a-zA-Z]*!");
final String str = tvTextView.getText().toString();
Matcher matcher = pattern.matcher(str);
while (matcher.find()){
    final int start = matcher.start();
    final int end = matcher.end();
    ClickableSpan clickSpan = new ClickableSpan() {
        @Override
        public void onClick(View widget)
        {
        //do something                      
        }
    };
    spans.setSpan(clickSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}

我尝试使用implements OnItemClickListener作为类本身,但它的行为方式相同 - 只有在单击页脚时才会响应。

我尝试将android:focusable="false"添加到我的ListItem XML中的视图中,但它没有用。

我尝试将android:focusableInTouchMode="false"android:clickable="false"添加到我的ListItem XML中的视图中,但它没有用。

我尝试在我的XML中将android:descendantFocusability="blocksDescendants"添加到我的布局中,但这也没有用。

我非常感谢任何建议。

提前致谢。

0 个答案:

没有答案