2013-02-11 4 views
0

내가 해시지도하고 있어요하고 오류를 보여줍니다 : - :HashMap으로 작업하면 오류가 표시됩니까?

songsList.add(fullpath); 

유형 ArrayList<HashMap<String,String>>의 방법 add(HashMap<String,String>)는 주장이 라인에 (String)

적용되지 않습니다

편집 :

private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>(); 
private Cursor musiccursor, videocursor; // projection for audio media files 
String[] music = { MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.DI‌​SPLAY_NAME, MediaStore.Video.Media.SIZE }; // projection for video media files 
String[] video = { MediaStore.Video.Media._ID,MediaStore.Video.Media.DATA,MediaStore.Video.Media.DI‌​SPLAY_NAME, MediaStore.Video.Media.SIZE }; 
+0

더 많은 코드를 입력하십시오. 귀하의'ArrayList'는'HashMap'을 사용하기위한 것이지만 대신에 어떤 이유로 든'String'을주고있는 것 같습니다. –

+0

private ArrayList > 노래 목록 = 새 ArrayList >(); \t 전용 커서 musiccursor, videocursor; \t // 오디오 미디어 파일의 투영 \t \t String [] music = {MediaStore.Audio.Media.D_, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Video.Media.SIZE} ; 비디오 미디어 파일 \t \t 문자열 [] = {비디오 MediaStore.Video.Media._ID, MediaStore.Video.Media.DATA, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.SIZE위한 \t \t는 // 투영 }; – SelenyanC2

답변

0

HashMap은 제네릭입니다. 임의의 단일 유형의 변수를 취하도록 만들 수 있지만 선언 된 유형 만 사용할 수 있습니다. 이 경우 ArrayList를 사용하도록 선언되었지만 String을 추가하려고했거나 그 반대의 경우입니다.

+0

예를 들어 설명해주십시오 ... ?? – SelenyanC2

+0

코드 songList.add에 따라 HashMap 을 취해야합니다. fullPath는 문자열입니다. 그것은 작동하지 않습니다. 파일 이름 목록을 갖고 싶니? 그런 다음 ArrayList 을 사용하십시오. 전체 해시 맵을 실제로 원한다면 새로운 해시 맵을 작성하고 fullpath를 추가 한 다음 해시 맵을 ArrayList에 추가해야합니다. –

관련 문제