我有一個包含25個不同項目的列表視圖。當我點擊一個項目時,相應的聲音文件被添加到一個數組中,從索引0開始,當更多的項目被選中時,每個相應的聲音文件被添加到數組的下一個索引中。因此,按下播放按鈕時,與索引0關聯的聲音文件播放,然後播放索引1的聲音,依此類推,直到沒有更多索引。隨着這一點(可能是不必要的)背景信息,我如何將圖像添加到當前正在播放的項目的列表視圖?像iPod一樣,我想在當前播放聲音的右側顯示一個圖標。我有一個圖標,我可以顯示它,但我不知道如何根據播放的聲音/數組索引來告訴它顯示哪一行。我已經閱讀了關於向列表視圖添加圖像的不同教程,但沒有關於只將一個圖像添加到特定行的內容。安卓顯示圖像的特定行列表視圖
0
A
回答
1
爲了解決您的問題,我認爲您可能需要通過重寫抽象方法來實現自己的子類BaseAdapter。像SimpleAdapter和SimpleCursorAdapter一樣,新的適配器將數據(您的案例中的聲音文件)綁定到列表中,但是您的BaseAdpater應該能夠找到列表中每個位置應該出現的視圖類型,並且能夠生成正確的列表查看項目。
您需要覆蓋BaseAdapter的方法來滿足您的需求。最重要的是如下:
int getViewTypeCount();
在你的情況下,列表包含兩個項目類:打還是不玩了,所以這個方法應該返回2.
int getItemViewType(int position);
你需要把一些邏輯在這裏檢查參數位置的聲音文件是否正在播放?如果位置上的項目正在播放,則應該返回一個類似TYPE_PLAYING的常量int,否則返回TYPE_NONPLAYING(當然,您需要提前定義這些常量)。
View getView(int position, View convertView, ViewGroup parentview);
這種方法中最有待辦事項,我覺得你可以按照下面的步驟:
查找項目在位置的類型,無論是TYPE_PLAYING或TYPE_NONPLAYING
得到一個LayoutInflater的實例爲不同的佈局文件添加兩種不同類型的項目,TYPE_PLAYING項目應該包含圖像以指示該項目的相應文件正在播放。請注意,您需要一個Context變量來檢索LayoutInflater。您可以在適配器中聲明一個Context成員,並在Adapter的構造函數中初始化它。
綁定每個文件的其他信息:文件名,時間長度等
如果正在播放的文件通過點擊列表項或其他交互更改,不要忘記調用BaseAdapter的notifyDatasetChanged ()方法刷新列表。
願意幫忙嗎?
相關問題
- 1. 安卓:getItemAtPosition()在自定義列表視圖:圖像和TextView的
- 2. 安卓:ID列表視圖
- 3. 安卓:在列表視圖
- 4. 安卓:具有不同圖像視圖自定義列表視圖
- 5. 無法在安卓選項卡上顯示HTML列表視圖
- 6. 安卓顯示鍵盤隱藏列表視圖內容
- 7. 安卓:項目文本不顯示在列表視圖
- 8. 在列表視圖中顯示圖像
- 9. 在列表視圖中顯示圖像
- 10. 安卓:顯示和暫停GIF圖像
- 11. 安卓:如何顯示圖像ImageSwitcher
- 12. WPF/MVVM:從圖像列表中顯示特定圖像?
- 13. 我試圖顯示在列表視圖圖像的列表,但
- 14. 很酷的安卓圖像視圖
- 15. 安卓:錯誤無法實現圖像列表視圖
- 16. 安卓,圖庫視圖不顯示我的靜態圖像和崩潰
- 17. 如何在列表視圖中顯示選定的圖像?
- 18. 從getTag列表視圖ontouchlistener安卓
- 19. 列表視圖排在安卓
- 20. 安卓:過濾列表視圖
- 21. 安卓:onfling在列表視圖
- 22. 安卓:讓列表視圖全屏
- 23. JSONArray排序爲列表視圖 - 安卓
- 24. 與複選框安卓列表視圖?
- 25. 安卓:實現列表視圖
- 26. 安卓:在列表視圖排錯
- 27. 安卓:列表視圖大小
- 28. 安卓:croping圖像,並添加視圖
- 29. 安卓圖像視圖漸變背景
- 30. 基於列ID顯示特定圖像