2011-11-21 72 views
1

我在我的應用程序中使用了一個spinnerbox。 Spinnerbox將被填充來自數據庫的項目。這本身已經起作用。不過,我需要在下拉列表中添加一個項目。 我希望第一個項目是「一般」一般不是一個項目。因此它不從數據庫中檢索。有沒有辦法將它注入光標或適配器?使用光標適配器的android spinner默認值

回答

0

我設法解決這個以不同的方式,然後我原計劃。但它運作良好。而不是一般選項。我做了一個複選框。它被檢查,然後它的一般和微調器被設置。如果未選中,它將被設置爲啓用。這適用於我的情況。

+1

不明白你的解決方案 – max4ever

1

前段時間我遇到了同樣的問題.. 問題是你實際上無法將信息插入到遊標中(因爲它只是一個指針),所以我相信你必須在中間有某種介體.. 我的解決方法是簡單地創建一個字符串數組[cursor.getCount + 1] ,然後在[0]中插入您的「常規」,然後通過您的光標插入其餘的。

它確實通過該項目額外的一輪(對我而言並不是那麼糟糕),但是對於長長的列表,您可能想要重寫該適配器並在它穿過光標前插入一行,我無法幫助您完成該代碼。

+0

嘿喬。感謝您的答覆。我試過這樣做。但是,如果它不是一般的,我可以從選定的項目中獲得ID,名稱等,這一點非常重要。項目名稱可能會出現兩次。不如把你的邏輯放在決定之後。但那是它應該如何去的。 –

+0

我明白了...好吧,我有另一個想法,但我不完全確定它的可能性。可能會將您的數據排列在MatrixCursor中(將數據庫光標合併到它中)。即時通訊不知道simpleCursorAdaptar是否足夠,因爲我不能想到在哪裏存儲這些額外的信息(除了標籤或不可見的視圖),所以也許在這個解決方案中重寫適配器也是必要的。讓我知道你是否知道這一點。 – Joe

+0

我以不同的方式解決了這個問題。它很簡單,我完全沒有想到它在x.x –

2

對我來說有效的是在sql查詢中做一個UNION。

dbStatic.rawQuery(
    " SELECT 2 as deftop, typeid as _id, typename as label FROM objtypes UNION "+ 
    " SELECT 1 as deftop, -1 as _id, "+strDefaultSpinner+" as label "+ 
    " ORDER BY deftop asc, label ", null 
); 

如果選擇的項目是-1,那麼它是默認值。否則它是來自表格的記錄。