簡體   English   中英

Android上的奇怪ListView選擇行為

[英]Strange ListView selection behavior on Android

有一個擴展ListActivity的活動。 該列表由擴展BaseAdapter的自定義適配器備份。

getListView().setFocusable(true);
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

我在onPrepareOptionsMenu()執行一個簡單的(getSelectedItemPosition() == ListView.INVALID_POSITION)檢查以禁用需要選擇項目的項目。

現在,我在啟動活動后執行的操作(操作發生在模擬器下,版本1.1),它看起來像:

  1. 點擊菜單 - 禁用菜單項 - 確定
  2. 使用鼠標滾輪和點擊菜單選擇項目 - 項目啟用-OK
  3. 單擊列表外的任何位置,重復2)。 這些項目沒有啟用 - WTF?
  4. 從頭開始,選擇一個擊中Del並移動鼠標的項目。 結果與3相同。

為什么這些(3,4)事情不斷發生在我身上? :) TIA。

依賴ListView上的selectedItemPosition可能是一種危險的方法。 根據我的經驗,如果List失去焦點(通過單擊其他內容), selectedItemPosition將設置為INVALID_POSITION

基本上,如果您的項目沒有橙色的“突出顯示”外觀,則指望selectedItemPosition為null。

作為替代方案,您可能希望通過覆蓋onItemClickonItemSelection方法並保存所選項目的索引來記住所選項目,然后使用它來控制菜單選項的可用性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM