2011-08-26 189 views
0

我創建了一個帶分隔符的自定義ListView(使用this教程)。它的外觀和工作正常,但分隔符仍然是可點擊的,可聚焦的,並且能夠獲得從中調用的上下文菜單。所以我試圖「閉嘴」:自定義ListView:分隔條目忽略設置

... 
case TYPE_SEPARATOR: 
    convertView.setFocusable(false); 
    convertView.setClickable(false); 
    convertView.setLongClickable(false); 
    break; 
     } 

return convertView; 

但他們完全忽略這些設置!出於測試目的,我使用了covertView.setBackground(Color.MAGENTA),它運行良好。任何人都知道什麼可能是錯的?

+0

你使用的是'lstView.setOnItemclickListener()' –

+0

當然,我這樣做,這不是問題!列表中的所有條目都可以被點擊,我需要的是限制分隔符響應點擊和長按。 – iDroid

+0

你可以''setOnClickListener();'''getView()'''convertView'' –

回答

0

假設您的適配器是實現BaseAdapter(例如ArrayAdapter)的適配器,請覆蓋適配器中的isEnabled()方法。

@Override 
public boolean isEnabled(int position) { 
    if (getItemViewType(postion) == TYPE_SEPARATOR) { // method taken from example 
     return false; 
    } 
    return super.isEnabled(position); 
} 

爲了跟蹤哪些項目是分隔符,哪些不是,保留一個ArrayList或一些其他類型的集合來跟蹤。

+0

我更新了代碼以使用教程中指定的方法。 –