我有一个带有ListAdapter的直接ListView和列表的自定义onItemClick方法。 我的ListView项目可以单击以执行其他功能。但是,我的一些ListView元素包含应可点击的电子邮件地址。
我找到了Linkify,并根据文档将其添加到电子邮件地址textview中。
执行此操作后,包含此类“可点击”文本视图的ListView项目现在不再可单击以执行其他功能。
我在创建整个视图后尝试添加OnItemClickListener,但无济于事:(
如果我的ListView项目包含Linkified textView,那么有什么想法可以点击我的ListView项目吗?
我最深的抱歉是在开始提问之前不再进一步搜索。 我找到了问题的答案,并将其作为答案发布。
答案 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