2013-10-30 71 views
1

我填充DrawerListView以下方式:如何引用下載的文件來填充列表視圖

mDrawerListView.setAdapter(new ArrayAdapter<String>(
      getActionBar().getThemedContext(), 
      android.R.layout.simple_list_item_activated_1, 
      android.R.id.text1, 
      getResources().getStringArray(R.array.dataElements))); 

名單抽屜正確填充,並如預期顯示的數據。但是,我不想引用R.array.dataElements,而想引用我下載到ExternalStorageDirectory的文件(list.xml)。如何獲取此下載文件的資源ID,以便填充ListView?

- UPDATE -

我能用下面的代碼實現所需的結果。感謝您指點我正確的方向。

try { 
     myArray = new ArrayList<String>(); 

     File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/list.xml"); 
     InputStream instream = new FileInputStream(file.getPath()); 
     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder db = dbf.newDocumentBuilder(); 
     Document doc = db.parse(new InputSource(instream)); 
     doc.getDocumentElement().normalize(); 

     // Parse XML file and store in string 

     NodeList myNodeList = doc.getElementsByTagName("item"); 

     for (int i = 0; i < myNodeList.getLength(); i++) { 

      Node myNode = myNodeList.item(i); 
      if(myNode.getNodeType() == Node.ELEMENT_NODE){ 

       myArray.add(myNode.getTextContent()); 

      } 


     } 
    } catch (Exception e) { 
     System.out.println("XML Pasing Excpetion = " + e); 
    } 

回答

0

如果要保存到外部存儲目錄(第一,不要忘記申報權限),你將無法引用它作爲資源ID,因爲它不與您的應用程序捆綁在一起(它存儲在SD卡上)。

一種方法是下載文件,但有一箇中間層(如解析器),它會將您的文件(在SD卡上)並返回一個字符串數組,並讓您的適配器讀取該文件。

看到這個Android的ListView教程:

http://www.vogella.com/articles/AndroidListView/article.html

爲SD卡,你可以這樣閱讀:

用於讀取從SD卡中的文件,只需要使用像這樣的東西得到一個輸入流:文件

sdCard = Environment.getExternalStorageDirectory(); 

File directory = new File (sdCard.getAbsolutePath() + "/Pictures"); 

File file = new File(directory, "image_name.jpg"); //or any other format supported 

FileInputStream streamIn = new FileInputStream(file); 
+0

感謝您的意見。該鏈接有很多好的代碼。但是,我似乎無法找到解析位於SD卡上的xml文件並將其放入字符串數組中的代碼示例。 – user881193

+0

這裏是一個xml解析器文檔:http://developer.android.com/training/basics/network-ops/xml.html –

+0

同一個人給出了關於xml解析的簡要介紹:http://www.vogella.com/文章/ AndroidXML/article.html。 –