2012-02-20 8 views
1

Collectionからシーケンスを返して、TextViewに適用しようとしています。テキストを設定すると、シーケンスの最後の値が1つだけ設定されます。シーケンスを印刷するときに、シーケンスが正常に動作していることを確認するために、すべてが正しく印刷されます。私が言うことができる限り、私はイテレータhasNext()の間にnext()を得て、この場合はトラックの名前を言ってこの権利を行っています。私はCollectionを適切に設定するためにいくつかの方法を試しましたが、IteratorとCollectionを使用する方法を研究した後、私はいつもこのメソッドに戻ります。私は行方不明ですコレクションIteratorがすべての値を返していない

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()メソッド内のすべてのオブジェクトを呼び出します。しかし、あなたが最後のものだけを返すという事実は問題になるかもしれません。

あなたの説明から、TrackgetName()メソッドごとにすべての文字列を返したいと思われます。 Listを返す必要があります。ループ内にそのすべてを配置するか、または単に連結してください。String

関連する問題