将字符串添加到适配器

发布于 2024-12-17 18:14:15 字数 897 浏览 0 评论 0原文

我有一个适配器,我想向其中添加一个字符串,但是当我运行此代码时,它只添加ongstoadd 变量中的最后一个字符串...这是一个自定义适配器,它在必要的地方添加分隔符,但在我想要的数组适配器中名称中具有相同首字母的所有字符串......

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

        }

I have an adapter and i want to add a string to it but when i run this code it only add the last string in the songstoadd variable ... That is a custom adapter which adds dividers in where neccessary but in the Array Adapter i want to a all of the strings that have the same first letter in their name ....

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

        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叹倦 2024-12-24 18:14:15

试试这个,让我知道会发生什么。

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 中创建简单的字母顺序滚动?< /a>

Try this, And let me know what happen..

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

For more info look at

Android: how to use SectionIndexer

Using AlphabetIndexer for fastscrolling ListView

Create easy alphabetical scrolling in ListView?

旧梦荧光笔 2024-12-24 18:14:15

尝试如下更改您的 while 并尝试..

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

Try changing your while as below and try..

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++;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文