Android 如何引用下载的文件以填充listview
我以以下方式填充DroperListView: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
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文件并将其放入字符串数组的代码示例。