ListView onClick event doesn't fire with Linkified email address

落花浮王杯 提交于 2019-12-03 06:54:01
djBo

Solution:

After a lot of more searching (which I already did, but not far enough apparently), I finally found this page.

Example code: My page (LinearLayout containing the listView) assigns a ListViewAdapter which creates the various ListView items, assigns itself as the OnClick listener and adds the ListView:

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

The ListViewAdapter creates each ListView item and assigns it's content, linkifying email addresses when needed:

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);
}

The solution is easy, using the code on the page I found. I created a LinkTextView class descending from TextView and added the method described on the page. After the Linkify.addLinks call above I added the statement:

textView.setMovementMethod(null);

The ListView item and linkified text are now both clickable once again.

Again, my deepest appologies for not searching further before asking the question to begin with.

Just add android:descendantFocusability="blocksDescendants" to xml definition of list item.

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!