想知道如何處理以下問題:根據兩個spinners的選定項目計算結果。爲了處理UI事情,即用戶在其中一個spinners中選擇一個新項目,我在該活動的onCreate()
方法中安裝了一個使用setOnItemSelectedListener
作爲微調器的偵聽器。如何通過代碼設置所選項目時禁用onItemSelectedListener
現在:那工作,當然很好。聽衆的工作是觸發結果的新計算。
的問題:因爲我攔截onPause()
onResume()
保存/恢復過去的狀態,我有一個方法套這兩個微調選定的項目編程就像在這裏:
startSpinner.setSelection(pStart);
destSpinner.setSelection(pDest);
這兩個調用調用聽衆也是!我的結果計算方法加上新結果集的通知在這裏調用兩次!
對此的一個愚蠢的直接方法是讓一個布爾變量禁用無論監聽者在裏面做什麼,在設置選擇的項目並在之後重新設置之前進行設置。 好的。但是有沒有更好的方法?
我不希望偵聽器被代碼調用,只能通過用戶操作調用! :-(
你怎麼辦呢? 謝謝!
您可以使用setSelection(pStart,false)設置動畫參數。但它不是一直工作。 – sunlover3 2017-08-15 13:04:34