2012-02-20 6 views
1

Collection에서 시퀀스를 반환하고 TextView에 적용하려고합니다. 텍스트를 설정할 때 시퀀스의 마지막 인 하나의 값만 설정됩니다. 시퀀스를 인쇄 할 때 시퀀스가 ​​제대로 작동하는지 확인하기 위해 모든 것이 올바르게 인쇄됩니다. 내가 말할 수있는 한, 반복자 인 hasNext()next()이고이 경우 트랙의 이름을 얻는다고 말하면서이 작업을 수행합니다. Collection을 올바르게 설정하는 몇 가지 다른 방법을 시도했지만 Iterator 및 Collection을 사용하는 방법을 연구 한 후에는 항상이 메서드로 끝납니다. 내가 누락 된게 뭐지?컬렉션 반복자가 모든 값을 반환하지 않습니다

public static String getTopTracks(String mArtistName) { 
    String returnTopTracks = ""; 
    Collection<Track> top = Artist.getTopTracks(mArtistName, key); 
    Iterator<Track> itr = top.iterator(); 
    while (itr.hasNext()) { 
     returnTopTracks = itr.next().getName(); 
     System.out.println(returnTopTracks); 
    } 
    return returnTopTracks; 
} 

답변

2

당신은 아마 당신이 Iterator에 관하여 게시하거나 사용의 코드 아무 문제가 없다 컬렉션

public static Collection<String> getTopTracks(String mArtistName) { 
    String returnTopTrack = ""; 
    Collection<Track> top = Artist.getTopTracks(mArtistName, key); 
    Collection<String> returnTopTracks = new ArrayList<String>(); 
    Iterator<Track> itr = top.iterator(); 
    while (itr.hasNext()) {   
     returnTopTrack = itr.next().getName(); 
     returnTopTracks.add(returnTopTrack); 
     System.out.println(returnTopTrack); 
    } 
    return returnTopTracks; 

}

+0

그래,이 트릭을했다. :) – adneal

0

로 최고 트랙을 반환하려면; 콜렉션의 getName() 메소드 내의 모든 오브젝트를 호출합니다. 그러나 당신이 마지막 것을 돌려 보내는 것만으로도 문제가 될 수 있습니다.

Track 님의 getName() 메서드를 사용하여 모든 문자열을 반환하려는 것으로 보입니다. List을 모두 넣었거나 그 루프에 String을 연결해야합니다.

관련 문제