Android 根据listView的ItemClick从XML文件获取数据
朋友们好,我正在寻找XML解析的解决方案,下面是我的数据库示例:-Android 根据listView的ItemClick从XML文件获取数据,android,xml-parsing,Android,Xml Parsing,朋友们好,我正在寻找XML解析的解决方案,下面是我的数据库示例:- <inneritem id="1" title="Cells" thumbnail=""> <Seconditem id="3" title="Intro" thumbnail="" /> <Seconditem id="4" title="Erythroc" thumbnail="" /> <Sec
<inneritem id="1" title="Cells" thumbnail="">
<Seconditem id="3" title="Intro" thumbnail="" />
<Seconditem id="4" title="Erythroc" thumbnail="" />
<Seconditem id="5" title="Band Nerophil" thumbnail="" />
<Seconditem id="6" title="Segmented Ntrophil" thumbnail="" />
<Seconditem id="7" title="Eosinil" thumbnail="" />
</inneritem>
<inneritem id="2" title="Cells" thumbnail="">
<Seconditem id="8" title="2Intro" thumbnail="" />
<Seconditem id="9" title="2Erythroc" thumbnail="" />
<Seconditem id="10" title="2Band Nerophil" thumbnail="" />
<Seconditem id="11" title="2Segmented Ntrophil" thumbnail="" />
<Seconditem id="12" title="2Eosinil" thumbnail="" />
</inneritem>
现在,我在listview中设置了id为1和2的项,并单击任何项,例如,如果我单击id为1的项,它将给我id为1,单击后,我想将带有与id为1相关的标记Seconditem的数据加载到新的listview中。那么我如何才能做到这一点呢。提前谢谢
简而言之,我想检查id的条件,然后加载数据,那么我如何检查这些条件呢。我的代码是:-
try {
InputStream is = getActivity().getAssets().open("public_material.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
doc.getElementsByTagNameNS("id", ItemsID);
NodeList nList = doc.getElementsByTagName("Seconditem");
Log.d("List count :- ", "" + nList.getLength());
for (int temp = 0; temp < nList.getLength(); temp++) {
Node GetEementNode = nList.item(temp);
if (GetEementNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) GetEementNode;
String strID = eElement.getAttribute("id");
String Title = eElement.getAttribute("title");
//String Thumbnail = eElement.getAttribute("thumbnail");
// GetterSetter row = new GetterSetter(strID,Title, Thumbnail);
GetterSetter row = new GetterSetter(strID,Title);
arrList.add(row);
}
}
} catch (Exception e) {
}
BaseAdapterData data = new BaseAdapterData(getActivity(), arrList);
list2NewView.setAdapter(data);
试试看{
InputStream is=getActivity().getAssets().open(“public_material.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
Document doc=dBuilder.parse(is);
doc.getDocumentElement().normalize();
getElementsByTagnames文件(“id”,ItemsID);
NodeList nList=doc.getElementsByTagName(“第二项”);
Log.d(“列表计数:-”,“”+nList.getLength());
对于(int-temp=0;temp
单击listview获取id,并将其与for循环中的arrList.getStrId()进行比较,如果匹配,则获取数据并执行任何您想要的操作….尝试以下代码:
list2NewView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
if(list2NewView.get(arg2).toString().equals(arrList.get(arg2).toString())
{
// do your code here
}
}
});
list2NewView.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3)
{
if(list2NewView.get(arg2.toString().equals)(arrList.get(arg2.toString())
{
//请在这里输入您的代码
}
}
});
这就是我一直在寻找的,其中公共材料是保存数据的xml:-
try{InputStream is = getActivity().getAssets().open("public_material.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
nList = doc.getElementsByTagName("inneritem");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node GetEementNode = nList.item(temp);
if (GetEementNode.getNodeType() == Node.ELEMENT_NODE) {
eElement = (Element) GetEementNode;
String strID = eElement.getAttribute("id");
if(strID.equals(ItemsID)){
NodeList conditionList = eElement.getElementsByTagName("Seconditem");
for(int secondTemp = 0; secondTemp<conditionList.getLength();secondTemp++){
Node getSecondNode = conditionList.item(secondTemp);
if(getSecondNode.getNodeType() == Node.ELEMENT_NODE){
Element SecondElement = (Element) getSecondNode;
String secondItemsDataID = SecondElement.getAttribute("id");
String secondItemsData = SecondElement.getAttribute("title");
GetterSetter row = new GetterSetter(secondItemsDataID,secondItemsData);
arrList.add(row);
}
}
}
// String Title = eElement.getAttribute("title");
//String Thumbnail = eElement.getAttribute("thumbnail");
// GetterSetter row = new GetterSetter(strID,Title, Thumbnail);
// GetterSetter row = new GetterSetter(strID,Title);
// arrList.add(row);
}
}
} catch (Exception e) {
}
try{InputStream is=getActivity().getAssets().open(“public_material.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
doc=dBuilder.parse(is);
doc.getDocumentElement().normalize();
nList=doc.getElementsByTagName(“inneritem”);
对于(int-temp=0;temp 对于(int secondTemp=0;secondTemp是的,但这就是我的意思,我如何将从listview中获取的id与inneritem的xml id进行比较。制作一个包含其父id的GetterSetter并与之进行比较