2013-07-08 39 views
1

我正在使用導航抽屜示例downloadable here在Android導航抽屜中禁用項目

我想擴展這個例子來禁用選擇其中一個行星。爲了簡單起見,我們可以說我想永久地禁用土星的選擇,並將土星的文字改爲深灰色,並讓用戶選擇它時不會突出顯示。 (實際上,當用戶在屏幕上更改了某些尚未保存到設備中的值時,我想以編程方式禁用導航)。

我得到的最接近的東西是停止從onItemClick點擊監聽器中調用selectItem()方法,但即使我這樣做,問題仍然存在 - 「土星」的文本仍然顯示爲可選,並且突出顯示當用戶點擊它時。

爲了防止突出顯示土星文本,我需要更改哪些部件?
我試着改變

mDrawerLayout.setClickable(false); 
mDrawerList.setClickable(false); 

但沒有這些選項出現在有任何影響。

有關如何解決此問題的任何建議或想法? 一對夫婦有幫助的說明:

  1. 我知道,或者我可以Set the Drawer Lock Mode,以防止被打開抽屜式導航欄中,但是這是直觀遠低於已經變成灰色導航行動
  2. 是比較合適的做法在這裏要做的是從列表中刪除目前無法訪問的項目?類似於Remove ListView implementation這裏所描述的?最大的缺點是我可能不得不改變列表視圖來描述爲什麼項目已經從這個列表中暫時刪除。

回答

4

我想延長這個例子中,你重寫areAllItemsEnabled()禁用行星之一的選擇

創建您自己的ArrayAdapter子返回falseisEnabled()返回true或根據需要使用false

+0

請問您可以發佈此代碼的示例嗎? – user1363871

+1

@ user1363871:當您使用搜索引擎查找涉及這些方法的示例時,您發現了什麼? – CommonsWare

+0

謝謝,作品完美! –