Добавить строку в адаптер - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть адаптер, и я хочу добавить в него строку, но когда я запускаю этот код, он добавляет только последнюю строку в переменную songstoadd ... Это пользовательский адаптер, который добавляет разделители в случае необходимости, но в массивАдаптер я хочу, чтобы все строки, которые имеют одинаковую первую букву в имени ....

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);

        }

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Попробуйте, и дайте мне знать, что произойдет ..

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: как использовать SectionIndexer

Использование AlphabetIndexer для быстрой прокрутки ListView

Создать простую алфавитную прокрутку в ListView?

0 голосов
/ 22 ноября 2011

Попробуйте изменить время, как показано ниже, и попробуйте ..

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++;
    }
}
...