该customlistview不填充的文件列表,我想? [英] The customlistview doesn't populate the list of files,that i want to?

查看:123
本文介绍了该customlistview不填充的文件列表,我想?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图填充mp3files的片段,这又是viewpager的一部分内的自定义列表视图。这里是片段的code中,我要放置列表视图:

 公共类FragmentSongs扩展片段{    私有静态最后弦乐Sd_Path =新的String(/ SD卡/);
    私人MediaPlayer的熔点为新的MediaPlayer();
    @覆盖
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
        捆绑savedInstanceState){
        查看查看= inflater.inflate(R.layout.fragment_a,集装箱,FALSE);
        ListView控件SngList =(ListView控件)view.findViewById(R.id.SongList);         SongDetails详细= NULL;
         上下文_c = NULL;         ArrayList的< SongDetails> Songinfo;         // AdapterView.AdapterContextMenuInfo信息;
         Songinfo =新的ArrayList< SongDetails>();         文件f =新的文件(/系统/);
         文件[] =文件f.listFiles(新Mp3Filter());
         如果(files.length大于0)
         {
              的for(int i = 0; I< files.length;我++)
              {Detail.setIcon(R.drawable.ic_launcher);
              Detail.setSong(文件[I] .getName());
              Detail.setArtist(文件[I] .getName());
              Detail.setAlbum(文件[I] .getName());
              Songinfo.add(详细信息);              SngList.setAdapter(新CustomAdapter(Songinfo));
              }
         }
         否则,如果(files.length == 0)
             返回null;         返回视图。
    }
}类Mp3Filter实现了FilenameFilter {
    公共布尔接受(文件目录,字符串名称)
    {        返回(name.endsWith(RC))|| (name.endsWith(MP3))||
                      (name.endsWith(MP3)); //搜索的文件
    }
}


解决方案

 如果(files.length大于0){
      的for(int i = 0; I< files.length;我++){
          SongDetails细节=新SongDetails();
          detail.setIcon(R.drawable.ic_launcher);
          detail.setSong(文件[I] .getName());
          detail.setArtist(文件[I] .getName());
          detail.setAlbum(文件[I] .getName());
          Songinfo.add(细节);
       }
     SngList.setAdapter(新CustomAdapter(Songinfo));
 }

在for循环两件事情是错误的。第一个创建在每次迭代一个新的 CustomAdapter 。 Yoph应该箱子当循环用完设置。该SECONDO错误是你,在每次迭代覆盖详细的值。你应该在每创建一个新的详细信息对象迭代的

I am trying to populate mp3files in a custom listview inside a fragment, which in turn is a part of viewpager. Here is the code of the fragment in which I want to place the list view:

public class FragmentSongs extends  Fragment {

    private static final String Sd_Path=new String("/sdcard/");
    private MediaPlayer mp =new MediaPlayer();




    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {


        View view = inflater.inflate(R.layout.fragment_a, container, false);
        ListView SngList = (ListView) view.findViewById(R.id.SongList);

         SongDetails Detail = null ;
         Context _c = null ;



         ArrayList<SongDetails> Songinfo;

         // AdapterView.AdapterContextMenuInfo info;
         Songinfo = new ArrayList<SongDetails>();

         File f=new File("/system/");
         File[] files = f.listFiles(new Mp3Filter());
         if( files.length>0)
         {
              for(int i=0; i<files.length; i++) 
              {Detail.setIcon(R.drawable.ic_launcher);
              Detail.setSong(files[i].getName());
              Detail.setArtist(files[i].getName());
              Detail.setAlbum(files[i].getName());
              Songinfo.add(Detail);

              SngList.setAdapter(new CustomAdapter(Songinfo ));


              }
         }
         else  if (files.length == 0)
             return null;

         return view;


    } 
}

class Mp3Filter implements FilenameFilter{
    public boolean accept(File dir,String name)
    {

        return (name.endsWith(".rc"))|| (name.endsWith(".Mp3")) ||
                      (name.endsWith(".MP3"));//searching for the files
    }
}

解决方案

if( files.length>0) {
      for(int i=0; i<files.length; i++)  {
          SongDetails detail = new SongDetails();
          detail.setIcon(R.drawable.ic_launcher);
          detail.setSong(files[i].getName());
          detail.setArtist(files[i].getName());
          detail.setAlbum(files[i].getName());
          Songinfo.add(detail);
       }
     SngList.setAdapter(new CustomAdapter(Songinfo ));
 }

in the for loop two things are wrong. The first you create at every iteration a new CustomAdapter. Yoph should crate and set it when the loop runs out. The secondo mistake is that you, at every iteration override the values of Detail. You should create a new Detail object at every iteratio

这篇关于该customlistview不填充的文件列表,我想?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆