ListView onClick事件不会使用链接的电子邮件地址触发

时间:2011-09-22 13:41:43

标签: android listview linkify

我有一个带有ListAdapter的直接ListView和列表的自定义onItemClick方法。 我的ListView项目可以单击以执行其他功能。但是,我的一些ListView元素包含可点击的电子邮件地址。

我找到了Linkify,并根据文档将其添加到电子邮件地址textview中。

执行此操作后,包含此类“可点击”文本视图的ListView项目现在不再可单击以执行其他功能。

我在创建整个视图后尝试添加OnItemClickListener,但无济于事:(

如果我的ListView项目包含Linkified textView,那么有什么想法可以点击我的ListView项目吗?


我最深的抱歉是在开始提问之前不再进一步搜索。 我找到了问题的答案,并将其作为答案发布。

2 个答案:

答案 0 :(得分:22)

<强>解决方案:

经过大量的搜索(我已经做了,但显然还不够),我终于找到了this page

示例代码: 我的页面(包含listView的LinearLayout)分配一个ListViewAdapter,它创建各种ListView项,将自己指定为OnClick侦听器并添加ListView:

list.setAdapter(adapter);
list.setOnItemClickListener(this);
addView(list);

ListViewAdapter创建每个ListView项目并分配其内容,在需要时链接电子邮件地址:

public View getView(int position, View convertView, ViewGroup parent) {
    View view = layoutInflater.inflate(R.layout.list_item_layout, null);
    TextView textView = (TextView) view.findViewById(R.id.item_text);
    textView.setText(<some email address>);
    Linkify.addLinks(textView, Linkify.EMAIL_ADDRESSES);
}

使用我找到的页面上的代码,解决方案很简单。我创建了一个从TextView开始的LinkTextView类,并添加了页面上描述的方法。 在上面的Linkify.addLinks调用之后,我添加了语句:

textView.setMovementMethod(null);

现在,ListView项目和链接文本都可以再次点击。

同样,我最深刻的抱怨是在开始提问之前不再进一步搜索。

答案 1 :(得分:1)

只需将android:descendantFocusability =“blocksDescendants”添加到列表项的xml定义中。

来源:http://www.thekeyconsultant.com/2013/06/android-quick-tip-linkify-and-listviews.html?m=1