使用sdcard中的视频填充列表视图。安卓

时间:2013-11-24 08:59:57

标签: android listview populate

我的SD卡中有很多视频位于以下位置......“sdcard / new folder / * *。mp4”。现在我想用这些视频的名称填充列表视图。每次视频的数量都会有所不同。没有固定数量的视频。因此,将名称保存在“values”文件夹中对我没有任何好处。我的代码如下......

public class Main extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

和main.xml

     <?xml version="1.0" encoding="utf-8"?>
            <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

我不知道如何使用视频名称填充列表视图。请帮忙。

3 个答案:

答案 0 :(得分:0)

您应该使用sqlite database来存储文件名,这样您就可以随时获得count。那么它更容易吗?

答案 1 :(得分:0)

您应该将视频存储到SD卡中,但可以将文件路径保存到sqlite数据库中。然后从SD卡读取文件路径和视频,并在列表视图中显示。

//get the path of the sdcard and enter all the files to an array file
 File[] file = Environment.getExternalStorageDirectory().listFiles(); 

File dir = new File(Environment.getExternalStorageDirectory() + "/YourFolder");
File[] fileslist = dir.listFiles(); 

  for(File file:fileslist ){        
     videoList.add(file.getPath());
  }

答案 2 :(得分:0)

您应该将这部分代码调整到您的应用

    public class MainActivity extends Activity {

        private List<String> myList;
        File file;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);


            //List code
            ListView listView = (ListView) findViewById(R.id.mylist);
            myList = new ArrayList<String>();

            File directory = Environment.getExternalStorageDirectory();
            file = new File( directory + "/videos" );
            File list[] = file.listFiles(new FilenameFilter() {

                public boolean accept(File dir, String filename) {
                    // TODO Auto-generated method stub
                    if(filename.contains(".mp4")){
                        return true;
                    }
                    return false;
                }
            });

            for( int i=0; i< list.length; i++)
            {
                    myList.add( list[i].getName() );
            }
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, android.R.id.text1, myList);
            listView.setAdapter(adapter); //Set all the file in the list. 
          }
}