作者bemyangel (天使的羽翼)
看板AndroidDev
標題[問題] 改寫SimpleCursorAdapter的bindView問題
時間Fri Jul 19 00:25:04 2013
先簡短說明一下為何要改寫SimpleCursorAdapter的bindView的原因,
我透過SQLite搜尋資料庫抓下來的資料丟進Cursor後再透過我寫的一個繼承
SimpleCursorAdapter的Adapter把資料給ListView
我想要讓資料排列順序是倒反的,預設情況是先讀進來的資料在上面,後來的往下擠
網路搜尋了各種方法,似乎都指向只能透過SQL語言去做Order By的動作,但是我比較想
在Adapter內去做順序交換的動作,因此我去Git Hub網站
http://ppt.cc/2N26
找到的了SimpleCursorAdapter.java的原始碼,而試圖想透過改寫bindView的內容來
達到我想要的功能,但是我發現他原始的程式碼有用到的變數(用protected宣告)
protected int[] mFrom; 與
protected int[] mTo;
,我卻不能用super.的方式進行呼叫,不知道是我找到的程式碼不對還是這樣的呼叫方法
是錯誤的?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.184.112
1F:推 asilzheng:如果你沒有重新定義的話,直接用就好了呀 07/19 00:34
我直接用了(其實我是先直接把原始碼的bindView整份複製下來使用),但是編譯器不認得
mFrom與mTo兩個變數
※ 編輯: bemyangel 來自: 219.85.184.112 (07/19 00:39)
※ 編輯: bemyangel 來自: 219.85.184.112 (07/19 00:53)
我重新仔細看過SimpleCursorAdapter.java,他的註解有說明mFrom和mTo應該要是
private的,所以在SDK中會被隱藏..,看樣子其實這兩個變數不該被修改,
看樣子只剩修改SQL語言這個方法了
※ 編輯: bemyangel 來自: 219.85.184.112 (07/19 01:15)
2F:→ Killercat:SQL Language is evil, use ORM instead =P 07/19 12:29
3F:→ Killercat:另外按照你的需求的話 把資料撈出來灌到MatrixCursor 07/19 12:30
4F:→ Killercat:會是比較make sense的做法 07/19 12:30
5F:推 tomap41017:寫一個adapter把原本的adapter包起來呢? 07/24 10:27