我寫了搜索欄的自定義偏好,到目前爲止,它的工作原理,但有一個問題,我的搜索欄的ID被定義在XML中,所以當我嘗試使用我的自定義prefernces 2,然後我更新求酒吧我無法區分這兩者。運行時的Generte資源ID?
SeekBar bar = (SeekBar)view.findViewById(R.id.PreferenceSeekBar);
有沒有辦法在運行時生成自定義資源ID? 或者也許解決這個問題的另一種方法?
感謝, 傑森
我寫了搜索欄的自定義偏好,到目前爲止,它的工作原理,但有一個問題,我的搜索欄的ID被定義在XML中,所以當我嘗試使用我的自定義prefernces 2,然後我更新求酒吧我無法區分這兩者。運行時的Generte資源ID?
SeekBar bar = (SeekBar)view.findViewById(R.id.PreferenceSeekBar);
有沒有辦法在運行時生成自定義資源ID? 或者也許解決這個問題的另一種方法?
感謝, 傑森
定製偏好的onBind ovverriden方法,你傳遞一個View視圖,其中包含對當前優先活動各方面的意見。
Preference
沒有onBind()
方法。有是和onBindView()
方法。但是,傳遞給onBindView()
的View
是什麼View
你onCreateView()
返回,或從您指定的佈局文件充氣View
,如果你去這條路線。這不是整個活動。
確保您在爲您的Preference
創建的小部件上調用findViewById()
,而不是更廣泛的範圍。
另外,請記住,PreferenceActivity
是ListActivity
。如果您的自定義Preference
滾出屏幕,其View
可以切換到您的自定義Preference
回收的另一個實例。
是的,我知道即使考慮到我得到的影響是當我只移動一個Seek Bars時,它們都在移動。考慮到傳遞給我的視圖沒有任何意義,它不包含兩個搜索欄 – Jason 2010-10-30 17:22:18
@Jason:這個問題聽起來很熟悉,但我不記得解決方案。 – CommonsWare 2010-10-30 17:52:09
恥辱,如果我創建了一個習慣prefernce類的副本並使用它 - 它解決了它,提示混合引用但我找不到任何內容,我一直在這裏徘徊一段時間。 – Jason 2010-10-30 20:53:46
什麼是你的代碼清單中的'view'? – CommonsWare 2010-10-30 14:45:36
@CommonsWare:在自定義首選項的onBind ovverriden方法中,傳遞一個View視圖,其中包含當前首選項活動的所有視圖。 – Jason 2010-10-30 16:16:47