olution:
正如上面提到的,我只是成立了一個全局變量,並通過我是否願意選擇或者清除它。然後我只是調用我的函數來填充ListView。在構建ListView時,它會通過一個簡單的「if」語句來檢查變量,並添加是否檢查或取消選中。遊標適配器隨後在重新運行時執行檢查/取消選中。
//The code for clearing all.
btnClearAll.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
checkedCount = 0;
GetMusicMode = "ClearAll";
GetMusic getMusic = new GetMusic();
getMusic.execute();
}
});
而這從我的數據採集器的ListView。
....
String track_Title = null;
String track_Path = null;
String track_Artist = null;
String track_Album = null;
String track_ID = null;
String track_TrackNumber = null;
String track_AlbumID = null;
String track_ArtistID = null;
String track_Checked = null;
if (Constants.GetMusicMode.equals("SelectAll")){
track_Checked = "Checked";
}else{
track_Checked = "Not Checked";
}
.....
.....
HashMap<String, String> song = new HashMap<String, String>();
song.put("songTitle", track_Title);
song.put("songPath", track_Path);
song.put("songArtist", track_Artist);
song.put("songAlbum", track_Album);
song.put("songTrackNumber", track_TrackNumber);
song.put("songID", track_ID);
song.put("songAlbumID", track_AlbumID);
song.put("songArtistID", track_ArtistID);
song.put("songCheckedStatus", track_Checked);
// Adding each song to SongList
songsList.add(song);
....throw to cursor adapter
最後,從CursorAdapter的getview本節
if (songsList.get(position).get("songCheckedStatus").equals("Checked")){
holder.checkTextView.setChecked(true);
}else{
holder.checkTextView.setChecked(false);
}
如果您使用自定義適配器,那麼'setItemChecked'將無法正常工作,你就必須改變'CheckedTextView'的狀態在適配器級別。 – Luksprog
有時解決方案非常明顯....如果我只是將一個變量傳遞給構建listview的函數,在調用適配器之前,我可以輕鬆地選擇/清除所有變量。感謝您向正確的方向推動 –
如果您找到解決方案,請發佈答案並接受答案,以便問題得到解答。 – Luksprog