ListView onClick event doesn't fire with Linkified email address

后端 未结 2 1553
夕颜
夕颜 2021-02-08 03:20

I have a straight forward ListView with a ListAdapter and custom onItemClick method for the list. My ListView items are clickable to perform other functions. However, some of my

相关标签:
2条回答
  • 2021-02-08 03:31

    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

    0 讨论(0)
  • 2021-02-08 03:39

    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.

    0 讨论(0)
提交回复
热议问题