2011-12-01 52 views
0

我想disable all list itemsListView除第一個位置項目。在ListView中禁用列表項目

這意味着每次只能點擊第一個項目而不是全部。

我該怎麼做。有什麼辦法嗎? 給我一些示例代碼。

回答

1
<ListView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:listSelector="@android:color/transparent" /> 


    ListView lv = ... 

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { 

     if(position == 1) 
     { 
     view.setBackgroundColor(Color.GREEN); 
     } 

    } 
}); 
+0

我想禁用。如果你點擊特定的項目,那麼listitem的顏色就會改變。但我不希望這樣,顏色不應該改變。 – Jyosna

+0

只有第一項顏色必須更改? –

+0

我做到了,但是包括第1項在內全部顏色正在變化。只有活動正在爲第一項工作。但所有顏色都會改變。我不想那樣。 – Jyosna

0

在這裏你必須從ListView的項目創建自定義適配器,並使用不同的顏色爲第一項和自定義適配器的getView方法的項目的其餘部分則其他項的禁止click事件不包括第一位置

+0

ü可以給我一些示例代碼 – Jyosna

+0

你有自定義適配器上工作過的ListView? – bindal

+0

是我使用自定義適配器僅 – Jyosna

2

我得到了我的答案。只有我必須在自定義適配器中使用兩種覆蓋方法,

@Override 

    public boolean areAllItemsEnabled() { 
     return false; 
    } 

    @Override 
    public boolean isEnabled(int position) { 
     return true; 
    } 
+0

如果項目包含可點擊美景無效(按鈕,edittexts等)裏面 –

+0

謝謝!重寫isEnabled(int position)完美工作 – Aliya