2011-09-22 53 views
11

我有一個ListAdapter和自定義onItemClick方法列表的直接ListView。 我的ListView項目可點擊執行其他功能。但是,我的一些ListView元素包含一個電子郵件地址,也可以點擊。ListView onClick事件不會觸發鏈接的電子郵件地址

我發現Linkify,並將其添加到每個文檔的電子郵件地址textview。

這樣做後,包含這種「可點擊」文本視圖的ListView項目現在不再可點擊來執行其他功能。

我曾嘗試加入OnItemClickListener後,我創建整個視圖,都無濟於事:(

任何想法是如何有我的ListView項目可點擊eventhough它們含有Linkified的TextView?


我最深切的問題是在提出問題之前沒有進一步搜索 我已經找到了我的問題的答案,並將其作爲回答發佈。

+0

請添加一些代碼,以便我們可以得到一些關於它的主意。 –

+0

有些人可能會很棒=) –

+0

你在行佈局中嘗試過'android:descendantFocusability'嗎? – pawelzieba

回答

22

解決方案:

經過很多更多的搜索(我已經做了,但顯然不夠),我終於找到了this page

示例代碼: 我的頁面(包含列表視圖的LinearLayout)分配其產生的各種的ListView項,自己指定的OnClick聽衆並添加ListView的一個ListViewAdapter:

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

的ListViewAdapter創建每個ListView項並賦予它的內容,在需要的時候linkifying電子郵件地址:

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項和linkified文本,現在都可以點擊。

再一次,我最深切的問題是在提出問題之前不再進一步搜索。

+0

讓人放鬆,你必須爲此而道歉。 – palindrom