OK時,試圖從我的SD卡圖像在活動ListView
顯現。生命週期使用SimpleCursorAdapter.setViewImage
我正在閱讀很多提示,但我錯過了一個重要的塊。我很想看到一小段代碼說明了這一點,還沒有發現任何東西。
從我的研究,它聽起來就像當執行listview.setadapter(SimpleCursorAdapter adapter)
bindview()
被調用。該文檔說如果ViewBinder
無法處理ImageView
,setImageView
被bindview
調用。
您的FROM
陣列中指定字段中,TO
陣列中的TextView
的id
,所述Cursor
,並與TextView
視圖組。然後將適配器設置爲ListView
,然後發生。
我想調用順序則是: listView.setAdapter(SimpleCursorAdapter adapter)->adapter.bindView()->adapter.setTextView
Bindview必須確定視圖的類型TextView, determine that it can bind it, passes the
的TextView and text value from the cursor and
setTextView`做的事情。
所以,這使得呼籲的ImageView
非常相似的,對不對?
listViw.setAdapter(SimpleCursorAdapter adapter)->adapter.bindView()->adapter.setImageView
所以,當bindView
遇到和ImageView
類型的對象,它有什麼作用?是否有像setTextView
這樣的默認實現?我想這很難做到,圖像差別很大。文字是文字,但圖像有格式,大小,深度,比例,位置等等。傳遞給setTextView
的字符串是文本,有效載荷。在圖像中,字符串(可能)是文件名,只是圖像的起點。
我想我會需要建立我的適配器與持有FROM
文件名中的數據庫列名。 TO
數組在我的佈局中將只有ImageView
的ID。我想我可以使用默認的viewbinder bindview(),但必須覆蓋setImageView()
採取期望的字符串(文件名),並打造出了圖像加載線找到預期的應用程序路徑圖像名稱。
所以這將是(也許):
listView.setAdapter(MyOwnSimpleCursorAdapter myOwnAdapter)->myOwnAdapter.super.bindView()->myOwnAdapter.setImageView()
這聽起來是正確的?如果任何人都可以填補缺失的空白和/或提供一些工作的源代碼,這將有很大幫助。順便說一句,我已經寫了代碼來做到這一點,但它不起作用。這可能是一個非常簡單的錯誤,如果它可行,不想停止這個線程。我想我只需要在正確的方向上輕輕一點。
太好了,謝謝你的詳細回答,特別是考慮到我的問題很難找到所有這些措詞。這個問題有點兒「這聽起來不錯嗎?」 我不知道調用getView()和newView(),但關於setViewImage如何超級有用的額外細節。我還沒有去源代碼的答案,只是文件。另一個好的提示... – JustSomeGuy 2012-04-02 20:05:28
我的代碼也沒有失敗,本身,它只是沒有顯示任何圖像。這是因爲從數據庫返回的字符串只是文件名,而不是Uri的「photo100.jpg」與「file://mnt/sdcard/photo100.jpg」。 我將切換到存儲圖像的完整路徑,如果我決定支持多個位置的圖像,這將更好。 – JustSomeGuy 2012-04-02 20:32:25