2011-11-22 65 views
0

我有一個適配器,我想一個字符串添加到它,但是當我運行這段代碼只在songstoadd變量添加的最後一個字符串...這是一個定製的適配器,它增加了分隔在neccessary但在數組適配器我想在所有在他們的名字的第一個字母相同的字符串....添加字符串到適配器

SeparatedListAdapter adapter = new SeparatedListAdapter(this); 
    ArrayList<String> songstoadd = new ArrayList<String>(); 

       Collections.sort(songtitle); 
       int m = 0; 
       while(m <songtitle.size()-1){ 
        if(songtitle.get(m).substring(0, 1) == songtitle.get(m+1).substring(0, 1)){ 
         m++; 
        }else{ 
        songstoadd.clear(); 
        songstoadd.add(songtitle.get(m)); 

       adapter.addSection(songtitle.get(m).substring(0, 1), new ArrayAdapter<String>(getApplicationContext(),R.layout.song, songstoadd)); 

       m++; 
        } 



     } 
       setListAdapter(adapter); 

     } 
+0

我認爲你需要我的編輯答案的ArrayList轉換爲String []數組 –

+0

看。訪問鏈接.. – user370305

回答

1

試試這個,讓我知道發生什麼事..

songstoadd.clear(); 
while(m <songtitle.size()-1){ 
        if(songtitle.get(m).substring(0, 1).equals(songtitle.get(m+1).substring(0, 1))){ 
         m++; 
        }else{ 

       songstoadd.add(songtitle.get(m)); 
       adapter.addSection(songtitle.get(m).substring(0, 1), new ArrayAdapter<String>(getApplicationContext(),R.layout.song, songstoadd)); 

       m++; 
        } 

欲瞭解更多信息看

Android: how to use SectionIndexer

Using AlphabetIndexer for fastscrolling ListView

Create easy alphabetical scrolling in ListView?

+0

它仍然增加了每一個歌名每節 –

0

試着改變你的,而下面和嘗試..

while(m <songtitle.size()-1){ 
    if(songtitle.get(m).substring(0, 1) == songtitle.get(m+1).substring(0, 1)){ 
     songstoadd.add(songtitle.get(m)); 
     m++; 
    }else{ 

     songstoadd.add(songtitle.get(m)); 

     adapter.addSection(songtitle.get(m).substring(0, 1), new ArrayAdapter<String>(getApplicationContext(),R.layout.song, songstoadd)); 

     songstoadd.clear(); 

     m++; 
    } 
} 
+0

這不僅增加了節頭,而不是從SONGTITLE數組中的任何 –