2013-11-24 112 views
-1

我在我的SD卡中有以下位置的視頻數量...「SD卡/新文件夾/ * * .mp4」。現在我想用這些視頻的名稱填充一個列表視圖。視頻數量每次都會有所不同。沒有固定數量的視頻。所以將名字保存在「values」文件夾中對我來說沒有任何好處。我的代碼如下...使用sdcard中的視頻填充列表視圖。 android

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> 

我不知道如何使用的視頻名稱填充ListView。請幫忙。

回答

0

您應該使用sqlite database來存儲文件名,以便您可以隨時獲得count。那麼它更容易na?

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()); 
    } 
+0

我不想使用SQLite。必須有一個更簡單的方法。必須有。 –

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