2012-10-02 30 views
5

我想在我的GridView中將某些項目從可點擊設置爲不可點擊。所以我有一個自定義適配器和onitemclicklistener gridview。在我的定義適配器,我試着做我的getView方法如下:(因爲我讀有關調用的IsEnabled ..)在gridview中設置某個項目不可點擊

if(int value < 5) { //item can not be clickable 
isEnabled(position); 
} else { 
//other things happen, but isEnabled is not called here in any case 
} 
//...... 
@Override 
    public boolean isEnabled(int position) { 

      return false; 

    } 

奇怪的是,現在每一個項目無法點擊,雖然有項目,其中價值是> 5 ..我不知道是什麼原因造成這...

+0

它應該是'isEnabled(value)'而不是'isEnabled(position)'? – DeeV

回答

9

所以你實際上在這裏做的是覆蓋內置的方法isEnabled(int)並告訴它總是返回false。這導致你的適配器總是告訴你的網格它的單元不應該被啓用。

你實際上是在尋找什麼東西更像

public boolean isEnabled(int position) 
{ 
    if(position < 5) 
     return false; 
    else 
     return true; 
} 

這裏的關鍵是,你是不是一個叫isEnabled。您優先於isEnabled,而GridView會自動調用它以確定哪些單元格應該可點擊,哪些不應該。所以你不應該爲了這個目的在你的代碼的任何地方實際調用isEnabled

+0

好的,我明白了。這聽起來很清楚!謝謝! –

相關問題