Android 如何引用下载的文件以填充listview

Android 如何引用下载的文件以填充listview,android,listview,Android,Listview,我以以下方式填充DroperListView: mDrawerListView.setAdapter(new ArrayAdapter<String>( getActionBar().getThemedContext(), android.R.layout.simple_list_item_activated_1, android.R.id.text1, getResources().get

我以以下方式填充DroperListView:

mDrawerListView.setAdapter(new ArrayAdapter<String>(
            getActionBar().getThemedContext(),
            android.R.layout.simple_list_item_activated_1,
            android.R.id.text1,
           getResources().getStringArray(R.array.dataElements)));
mDrawerListView.setAdapter(新阵列适配器(
getActionBar().getThemedContext(),
android.R.layout.simple\u list\u item\u activated\u 1,
android.R.id.text1,
getResources().getStringArray(R.array.dataElements));
列表抽屉已正确填充并按预期显示数据。但是,我希望引用下载到ExternalStorageDirectory的文件(list.xml),而不是引用R.array.dataElements。如何获取此下载文件的资源ID,以便填充ListView

--更新--

我能够用下面的代码实现期望的结果。谢谢你给我指明了正确的方向

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);
    }
试试看{
myArray=newArrayList();
File File=新文件(Environment.getExternalStorageDirectory().getAbsolutePath()+“/MyApp/list.xml”);
InputStream instream=新文件InputStream(file.getPath());
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse(新输入源(流内));
doc.getDocumentElement().normalize();
//解析XML文件并以字符串形式存储
NodeList myNodeList=doc.getElementsByTagName(“项目”);
for(int i=0;i
如果您要保存到外部存储目录(首先,不要忘记声明权限),您将无法将其作为资源ID引用,因为它未与您的应用捆绑在一起(存储在SD卡上)

一种方法是下载该文件,但有一个中间层(如解析器),它接收您的文件(在SD卡上),并可以返回字符串数组,然后让适配器读取该文件

请参阅此android listview教程:

对于SD卡,您可以这样阅读:

至于从SD卡读取文件,只需使用类似这样的方法来获取输入流:file

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

谢谢你的评论。这个链接有很多好的代码。但是,我似乎找不到解析SD卡上的xml文件并将其放入字符串数组的代码示例。